在学习的过程中,发现泛型集合List<T>有一个Where函数可以筛选出满足一定条件的元素,结合Lambda表达式使用特别方便,写出来与大家分享。
1.关于Func<>
Func是一种有任意个输入参数,有一个返回值的委托,在使用的过程中,Func<in,in,out>,前n-1个是输入参数类型,第N个是输出参数类型。
如Fun<int,int,bool> compare=(x,y)=>{return x>y;};
表示定义一个 两个输入参数为int类型的,输出类型为bool类型的委托。
2.Where()
可以看到 以List<string>为例子,改where的参数为Func<string,bool>的委托,也就是说是一个输入值为string类型,输出为bool类型的委托。 如果返回为真,则该元素会被添加到IEnumerable中,通过对IEnumerable的遍历,可以将符合条件的每个元素输出。
3.代码片段
List<string> names = new List<string>(); names.Add("wangyang"); names.Add("litong"); names.Add("yangjie"); IEnumerable<string> ie = names.Where((name) => { return name.Length < 7; }); foreach (var VARIABLE in ie) { Console.WriteLine(VARIABLE); }