19.C#逐一介绍IEnumerable和IEnumerable<T>中的扩展方法(10.3-10.5)
今天没有太多的言语,只有代码,扩展方法多得太多,不能一一列完,书中一些,看多了也就会使用了。
//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)的更多相关文章
- 21扩展IEnumerable<T>泛型接口自定义LINQ的扩展方法
LINQ方法实际上是对IEnumerable<TSource>的扩展,如图: 本篇自定义一个MyWhere方法,达到与Where相同的效果. 使用LINQ自带的Where方法 ...
- IEnumerable 与 IEnumerable<T>
转自:https://blog.csdn.net/qq_21419015/article/details/80495322 IEnumerable 和IEnumerable<T> 接口在 ...
- PHP删除数组中空值的方法介绍
这篇文章主要介绍了PHP删除数组中空值的方法介绍,需要的朋友可以参考下 说来惭愧,以前在去掉数组的空值是都是强写foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下: ...
- 为IEnumerable<T>添加RemoveAll<IEnumerable<T>>扩展方法--高性能篇
最近写代码,遇到一个问题,微软基于List<T>自带的方法是public bool Remove(T item);,可是有时候我们可能会用到诸如RemoveAll<IEnumerab ...
- IEnumerable和IEnumerable<T>接口
IEnumerable和IEnumerable<T>接口 IEnumerable和IEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach ...
- IEnumerable<T>与IQueryable<T>以及.net的扩展方法
首先看看继承关系 public abstract class DbSet : DbQuery public abstract class DbQuery : IOrderedQueryable, IQ ...
- IEnumerable接口的扩展方法
/// <summary>/// IEnumerable接口的扩展方法,支持它的实现类是List的情况/// </summary>using System.Collection ...
- IEnumerable中的 Any方法
IEnumerable类中的 Any方法,表示集合中有任何一元素满足条件,返回就true , 该方法有两个重载 1. 不带任何参数,表示集合中有元素 2. 参入一个 Func<TSource, ...
- 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法
比如Json.NET的JObject明明实现了IEnumerable<T>,具体来说是IEnumerable<KeyValuePair<string, JToken>&g ...
随机推荐
- zju 1937 初涉——深度优先搜索
#include "stdio.h" int a[11],b[11]; int k,flag,n,s; void DFS(); int main() { int i; while( ...
- bat文件重启SQL服务和IIS服务
sqlserver有自动备份功能,所以要重启两个服务器,下面是重启脚本,脚本名称:sql_restart.bat net stop sqlserveragent net stop mssqlse ...
- Java 集合介绍
1, Set :集合中对象不按特定的方式排序,并且没有重复对象,它有些实现类能对集合按特定方式排序 List :集合中对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索独享,Li ...
- atomic, spinlock and mutex性能比较
我非常好奇于不同同步原理的性能,于是对atomic, spinlock和mutex做了如下实验来比较: 1. 无同步的情况 #include <future> #include <i ...
- [转]比NPOI更討喜的Excel元件-EPPlus
本文转自:http://blog.darkthread.net/post-2012-05-12-epplus.aspx 前陣子發表 [潛盾機]將檔案結構匯成Excel文件,從網友佑翔的留言(特此感謝) ...
- UI设计实战篇——利用Bootstrap框架制作查询页面的界面
Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太大).尤其是现在的响应时布局(我的理解是页面根据不同的分辨率,采用不 ...
- 《TCP/IP详解 卷一》读书笔记-----TCP数据流
1.Delayed Acknowledgements:TCP通常不会在收到数据之后立即返回一个ACK,而是会有一个延时,希望能ACK报文段中带上一些数据,通常这个延时为200ms 2.Nagle Al ...
- [cocos2dx] 让UIButton支持disable状态
摘要: 主要解决cocos2dx-2.2.2版本中, UIButton显示不了disable状态图的问题. 顺便, 理解了一下cocos2dx中UIWidget的渲染原理. 博客: http://ww ...
- codeforces 577B B. Modulo Sum(水题)
题目链接: B. Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 伪造Http头拿flag
<?php function GetIP(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])) $cip = $_SERVER["HT ...