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

如果源序列中的至少一个元素与提供的谓词匹配,则Any(<predicate>)方法返回true。否则,它返回false。另一方面,如果源序列中的每个元素都与提供的谓词匹配,则All(<predicate>)方法将返回true。否则,返回false

示例

static void Main(string[] args){
   IEnumerable<double> doubles = new List<double> { 1.2, 1.7, 2.5, 2.4 };
   bool result = doubles.Any(val => val < 1);
   System.Console.WriteLine(result);
   IEnumerable<double> doubles1 = new List<double> { 0.8, 1.7, 2.5, 2.4 };
   bool result1 = doubles1.Any(val => val < 1);
   System.Console.WriteLine(result1);
   Console.ReadLine();
}

输出结果

False
True

示例

static void Main(string[] args){
   IEnumerable<double> doubles = new List<double> { 0.8, 0.9, 0.6, 0.7 };
   bool result = doubles.All(val => val < 1);
   System.Console.WriteLine(result);
   IEnumerable<double> doubles1 = new List<double> { 0.8, 0.9, 1.0, 0.7 };
   bool result1 = doubles1.All(val => val < 1);
   System.Console.WriteLine(result1);
   Console.ReadLine();
}

输出结果

True
False