C# 找出泛型集合中的满足一定条件的元素 List.Wher()

/ [随笔分类]C#高级 / 没有评论 / 135 浏览

在学习的过程中,发现泛型集合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&lt;string&gt; ie = names.Where((name) =&gt; { return name.Length &lt; 7; });
        foreach (var VARIABLE in ie)
        {
            Console.WriteLine(VARIABLE);
        }</pre>


 

        </div>