使用Linq Any()更有效率?

时间:2012-08-22 11:52:30

标签: c# linq

我有一个Linq查询,如下所示:

return this._alarmObjectAlarmViolationList
   .Where(row => row.ObjectId == subId)
   .Where(row => row.AlarmInternalId == "WECO #1 (StdDev > UCL)")
   .Where(row => row.PositionInSequence == row.SequenceCount)
   .Any();

这个函数是否与Where谓词在Any()语句中的内容有任何不同,或者更高或更低效?

这是Linq to Objects查询。

谢谢。

1 个答案:

答案 0 :(得分:6)

没有。 .Where(predicate).Any()Any(predicate)之间的执行速度没有实际差异。

但是,在内部仅使用Any(predicate)需要创建更少的对象。

我的建议是你使用更具可读性的变体。对于许多复杂的谓词,我认为使用Where时更容易阅读 - 就像在样本中一样。

请注意:我的回答仅适用于LINQ to Objects。