C#Linq中的All和Any方法有什么区别?

在linq中用的比较多的是Any,判断集合中是否有数据用的比较多(如if(arry.Any())),除了这个它还可以加条件来判断。还有另一个与Any类似的方法All方法,All方法不能直接像Any那样无条件判断,判断元素是否在数组中全部满足,大家使用的时候不能注意区分,下面我们用案例介绍他们的使用区别。.

区别:

Any()方法是确定序列中是否包含元素或存在元素满足指定条件
All()确定序列中的所有元素是否都满足条件。

Any()使用实例:

 //通过条件判断数据 判断某个元素 List<int> list1 = new List<int> { 12, 15, 16, 18,19 }; bool rel1 = list1.Any(val => val < 10); System.Console.WriteLine(rel1);//false List<int> list2 = new List<int> { 9, 15, 16, 18, 19 }; bool rel2 = list2.Any(val => val < 10); System.Console.WriteLine(rel2);//true //判断是否包含有数据 bool rel3 = list1.Any(); System.Console.WriteLine(rel3); Console.ReadLine(); //输出结果:False,true,true

All()使用实例

 //通过条件判断数据,判断所以的元素 List<int> list1 = new List<int> { 9, 8, 6, 7,5,2}; bool rel1 = list1.All(val => val < 10); System.Console.WriteLine(rel1);//false List<int> list2 = new List<int> { 9, 15, 16, 18, 19 }; bool rel2 = list2.All(val => val < 10); System.Console.WriteLine(rel2);//true //判断是否包含有数据 不能这样使用。 //bool rel3 = list1.All();//报错 Console.ReadLine(); //输出结果:True,false

从案例可以清楚的看出他们的区别,any是数据部分满足而all是全部满足条件,大家可以尝试以下。当然面试题不会直接这样问,可能会在选择题中出现,主要考察对linq使用的熟练程度。