我有一个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查询。
谢谢。
答案 0 :(得分:6)
没有。 .Where(predicate).Any()
和Any(predicate)
之间的执行速度没有实际差异。
但是,在内部仅使用Any(predicate)
需要创建更少的对象。
我的建议是你使用更具可读性的变体。对于许多复杂的谓词,我认为使用Where
时更容易阅读 - 就像在样本中一样。
请注意:我的回答仅适用于LINQ to Objects。