在集合上使用LINQ,以下代码行之间有什么区别?
if(!coll.Any(i => i.Value))
和
if(!coll.Exists(i => i.Value))
更新1
当我反汇编时.Exists,似乎没有代码。
.Exists
更新2
有人知道为什么那里没有代码吗?
参阅文件
List.Exists(对象方法-MSDN)
确定List(T)是否包含与指定谓词定义的条件匹配的元素。
从.NET 2.0开始存在,因此在LINQ之前存在。打算与Predicate 委托 一起使用,但是lambda表达式是向后兼容的。另外,只有List有这个(甚至没有IList)
IEnumerable.Any(扩展方法- MSDN)
确定序列中的任何元素是否满足条件。
这是.NET 3.5中的新增功能,并使用Func(TSource,bool)作为参数,因此,该功能旨在与lambda表达式和LINQ一起使用。
在行为上,这些是相同的。