2

我有一个 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 查询。

谢谢你。

4

1 回答 1

6

.Where(predicate).Any()不,和之间的执行速度没有真正的区别Any(predicate)

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

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

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

于 2012-08-22T11:54:32.140 回答