一尘不染

LINQ .Any VS .Exists-有什么区别?

c#

在集合上使用LINQ,以下代码行之间有什么区别?

if(!coll.Any(i => i.Value))

if(!coll.Exists(i => i.Value))

更新1

当我反汇编时.Exists,似乎没有代码。

更新2

有人知道为什么那里没有代码吗?


阅读 377

收藏
2020-05-19

共1个答案

一尘不染

参阅文件

List.Exists(对象方法-MSDN

确定List(T)是否包含与指定谓词定义的条件匹配的元素。

从.NET 2.0开始存在,因此在LINQ之前存在。打算与Predicate 委托
一起使用,但是lambda表达式是向后兼容的。另外,只有List有这个(甚至没有IList)

IEnumerable.Any(扩展方法-
MSDN)

确定序列中的任何元素是否满足条件。

这是.NET 3.5中的新增功能,并使用Func(TSource,bool)作为参数,因此,该功能旨在与lambda表达式和LINQ一起使用。

在行为上,这些是相同的。

2020-05-19