【发布时间】:2019-09-16 05:09:27
【问题描述】:
可能重复:
LINQ extension methods - Any() vs. Where() vs. Exists()
给定内存中的对象列表,我运行了以下两个表达式:
myList.where(x => x.Name == "bla").Any()
对比
myList.Any(x => x.Name == "bla")
后者总是最快的,我相信这是由于 Where 枚举了所有项目。但是,当没有匹配项时也会发生这种情况。
我不确定确切的原因。是否存在这种被观察到的性能差异不会出现的情况,例如查询 Nhib?
干杯。
【问题讨论】:
-
您进行了哪些测试?多少次迭代?我们在这里谈论什么样的性能差异?
-
应该没什么区别。 stackoverflow.com/q/10110013/284240
-
快速更正:我怀疑您的意思是
==而不是=。 -
投票结束。这个问题的答案提供了充足的见解 - stackoverflow.com/questions/3703256/…
-
SearchQueryDTO 是一个具有名为 Name 的字符串属性的类。 IList
myList = new List (); for (int i = 0; i x.Name == "499"); var time2 = timer2.Elapsed; //大约 0.5 毫秒 var timer = Stopwatch.StartNew(); var res = myList.Where(x => x.Name == "499").Any(); var time1 = timer.Elapsed; //大约 3.5 毫秒
标签: c# linq-to-objects