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