今天没有太多的言语,只有代码,扩展方法多得太多,不能一一列完,书中一些,看多了也就会使用了。

 //Enumerable.Range 返回起始到结束范围,是一个Enumrable<int>类型
//Range方法并不会真的构造含有适当数字的列表,它只是在恰当的时间生成那些数,"just in time"
var c0 = Enumerable.Range(, );
foreach (var e in c0)
{
Console.WriteLine(e);//打印1,2,3,4,5,6,7,8,9,10
} //Reverse(),反转列表
var c1 = c0.Reverse();
foreach (var e in c1)
{
Console.WriteLine(e);//打印10,9,8,7,6,5,4,3,2,1
} //where(),过滤
var c2 = c1.Where(x => x % == );//返回符合谓语条件的元素,返回类型为Enumrable<int>
foreach (var e in c2)
{
Console.WriteLine(e); //10,8,6,4,2
} Console.WriteLine("---------------------------------------------"); //使用链式操作,因为每个操作都是返回Enumrable<int>
c0.Reverse().Where(x => x % == ).ToList().ForEach(x => Console.WriteLine(x)); //select(),进行投影,返回自定义类型对象列表
string[] arrs = { "James", "John", "Michelle", "Amy", "Kim" }; //返回一个匿名类型列表,该匿名类型包含First和Last属性
var objs = arrs.Select(x => new { First = x.First(), Last = x.Last() });
foreach (var e in objs)
{
Console.WriteLine(e.First); //J,J,M,A,K
Console.WriteLine(e.Last); //s,n,e,y,m
} //选择以"J"开头的元素,将Y从首位移到未位
var yObjs = arrs.ToList().FindAll(x => x.StartsWith("J")).Select(x =>
{
var y = x.Remove(, );
return y + "J";
});
foreach (var e in yObjs)
{
Console.WriteLine(e); //amesJ,ohnJ
} //使用OrderBy进行排序,返回IOrderedEnumerable<string>
var orderArrs = arrs.OrderBy(x => x.First());
foreach (var e in orderArrs)
{
Console.WriteLine(e); //Amy,James,John,Kim,Michelle
} //ThenBy(),先使用OrderBy()以首字母排序,再以未位排序
var thenArrs = arrs.OrderBy(x => x.First()).ThenBy(x => x.Last());
foreach (var e in thenArrs)
{
Console.WriteLine(e); //Amy,John,James,Kim,Michelle
}

  请斧正。

19.C#逐一介绍IEnumerable和IEnumerable<T>中的扩展方法(10.3-10.5)的更多相关文章

  1. 21扩展IEnumerable<T>泛型接口自定义LINQ的扩展方法

    LINQ方法实际上是对IEnumerable<TSource>的扩展,如图:   本篇自定义一个MyWhere方法,达到与Where相同的效果.     使用LINQ自带的Where方法 ...

  2. IEnumerable 与 IEnumerable<T>

    转自:https://blog.csdn.net/qq_21419015/article/details/80495322 IEnumerable 和IEnumerable<T> 接口在 ...

  3. PHP删除数组中空值的方法介绍

    这篇文章主要介绍了PHP删除数组中空值的方法介绍,需要的朋友可以参考下 说来惭愧,以前在去掉数组的空值是都是强写foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下: ...

  4. 为IEnumerable<T>添加RemoveAll<IEnumerable<T>>扩展方法--高性能篇

    最近写代码,遇到一个问题,微软基于List<T>自带的方法是public bool Remove(T item);,可是有时候我们可能会用到诸如RemoveAll<IEnumerab ...

  5. IEnumerable和IEnumerable<T>接口

    IEnumerable和IEnumerable<T>接口 IEnumerable和IEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach ...

  6. IEnumerable<T>与IQueryable<T>以及.net的扩展方法

    首先看看继承关系 public abstract class DbSet : DbQuery public abstract class DbQuery : IOrderedQueryable, IQ ...

  7. IEnumerable接口的扩展方法

    /// <summary>/// IEnumerable接口的扩展方法,支持它的实现类是List的情况/// </summary>using System.Collection ...

  8. IEnumerable中的 Any方法

    IEnumerable类中的 Any方法,表示集合中有任何一元素满足条件,返回就true , 该方法有两个重载 1. 不带任何参数,表示集合中有元素 2. 参入一个 Func<TSource, ...

  9. 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法

    比如Json.NET的JObject明明实现了IEnumerable<T>,具体来说是IEnumerable<KeyValuePair<string, JToken>&g ...

随机推荐

  1. 一个不错的shell 脚本教程 入门级

    一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂     建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行s ...

  2. nyoj 139 我排第几个--康拓展开

    我排第几个 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说 ...

  3. redis 优化

    系统优化echo "vm.overcommit_memory=1" > /etc/sysctl.conf 0, 表示内核将检查是否有足够的可用内存供应用进程使用:如果有足够的 ...

  4. POJ 3264 Balanced Lineup -- RMQ或线段树

    一段区间的最值问题,用线段树或RMQ皆可.两种代码都贴上:又是空间换时间.. RMQ 解法:(8168KB 1625ms) #include <iostream> #include < ...

  5. tomcat7 - 烫手山芋之热部署

    tomcat7部署,项目发布有很多种方式 1. 增量发布,把修改过得那些文件手动上传至tomcat,*.class *.xml 等等,这样的缺点非常大,需要断开tomcat,记住那些你修改过得文件,很 ...

  6. 贴图在Unity中的设置

    例如:一张512X512的图片占用的内存大小,计算方法:512*512*4/1024=1.024MB. 如果在贴图设置里设置成真彩色那就等于计算的值,设置成16位色彩,内存占用会减少. 在进行性能优化 ...

  7. Linux下php安装memcache扩展

    安装环境:CentOS 6.4 php扩展memcache的作用是为了支持memcached数据库缓存服务器,下面是安装方法. 1.下载 下载地址:http://pecl.php.net/packag ...

  8. java 15 -7 ListIterator 的特有方法

    列表迭代器:  ListIterator listIterator():List集合特有的迭代器 该迭代器继承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法. 特有 ...

  9. 详解反射->Type.System

    反射先了解 一:system.Type 获取基本信息: Type.Name   //类名 Type.FullName //完整路径 Type.Namespace //空间名 public class ...

  10. extjs ajax请求与struts2进行交互

    sencha extjs 5 增加一个struts2的配置,这样可以在设置好前台布局之后,与后台交互获取数据显示.现在有一个问题是struts2对于url的跳转action支 持比较良好,但是对于像E ...