相关疑难解决方法(0)

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

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

if(!coll.Any(i => i.Value))
Run Code Online (Sandbox Code Playgroud)

if(!coll.Exists(i => i.Value))
Run Code Online (Sandbox Code Playgroud)

更新1

当我反汇编.Exists它看起来没有代码.

更新2

任何人都知道为什么这个没有代码?

c# linq collections

396
推荐指数
6
解决办法
30万
查看次数

包含,存在和任何的性能基准测试

我一直在寻找之间的性能基准测试Contains,Exists以及Any方法可用List<T>.我只想出于好奇而发现这一点,因为我总是在这些中感到困惑.关于SO的许多问题描述了这些方法的定义,例如:

  1. LINQ Ring:任何()vs Contains()用于巨大的集合
  2. Linq.任何VS.Exists - 有什么区别?
  3. LINQ扩展方法 - Any()vs. Where()vs. Exists()

所以我决定自己做.我将其添加为答案.对结果有任何更多见解是最受欢迎的.我还对数组进行了基准测试以查看结果

c# performance benchmarking

60
推荐指数
3
解决办法
5万
查看次数

.where(...)之间的性能差异.Any()vs ..Any(...)

可能重复:
LINQ扩展方法 - Any()vs. Where()vs. Exists()

给定内存中的对象列表,我运行了以下两个表达式:

myList.where(x => x.Name == "bla").Any() 
Run Code Online (Sandbox Code Playgroud)

VS

myList.Any(x => x.Name == "bla")
Run Code Online (Sandbox Code Playgroud)

后者总是最快的,我相信这是由于Where枚举所有项目.但是当没有匹配时也会发生这种情况.

我不确定为什么.是否存在这种观察到的性能差异的情况,例如是否在查询Nhib?

干杯.

c# linq-to-objects

5
推荐指数
1
解决办法
4199
查看次数