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();

これは、Any()ステートメント内にWhere述語を配置することとは機能的に異なりますか、それとも多かれ少なかれ効率的ですか?

これはLinqtoObjectsクエリです。

ありがとうございました。

4

1 に答える 1

6

.Where(predicate).Any()いいえ。との間で実行速度に実際の違いはありませんAny(predicate)

ただし、Any(predicate)内部でのみ使用すると、作成するオブジェクトが少なくて済みます。

私の提案は、より読みやすいバリアントを使用することです。複雑な述語がたくさんあるので、サンプルのように使用すると読みやすくなると思いWhereます。

注意:私の答えは、LINQtoObjectsにのみ適用されます。

于 2012-08-22T11:54:32.140 に答える