赞
踩
匿名函数:》》》
Action a1 = delegate(int i) { Console.WriteLine(i); };
Lambda:>>>
Aciont a1= (int i) => { Console.WriteLine(i); };
可以简写 (编译器会自动根据委托类型 推断)
Action a1 = (i)=> { Console.WriteLine(i); };
还可以简写 如果只有一个参数,可以把括号省略
Action a1 = i=> { Console.WriteLine(i); };
如果委托有返回值,并且方法体只有一个行代码,且这行代码还是返回值, 则可以 省略 大括号 和 return
Func f1 => () => { return 5;};
可以简写》》》》
Func f1 => () => 5;
static class Zen { public static IEnumerable<T> myWhere<T>(this IEnumerable<T> datas, Func<T, bool> func) { List<T> resultList = new List<T>(); foreach (T item in datas) { if (func(item)) resultList.Add(item); } return resultList; } } class Program { static void Main(string[] args) { int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; //nums 数组中是3的倍数 提取出来 IEnumerable<int> lt = nums.myWhere<int>((t) => { if (t % 3 == 0) return true; return false; }); foreach (int i in lt) { Console.WriteLine($"结果:{i}"); } Console.ReadKey(); } }
IEnumerable 对应的 扩展方法
where
select
Max
Min
OrderBy
First : 获取第一个,如果一个都没有,则抛出异常
FirstOrDefault : 获取第一个,如果一个都没有则返回默认值(如果是值类型,默认值0 如果是引用类型 则默认值 null)
Singe : 获取唯一一个,如果没有或者有多个,则抛出异常
SingeOrDefault : 获取唯一一个,如果没有则返回默认值,如果有多个,则抛出异常
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。