Edit2:
最終的に2つを互いにプロファイルできるようになった後、私の状況では.AsQueryable()はExpression.Compile()よりわずかに高速であるように見えます。
元の質問:
いくつかのデータベース テーブル (として) のキャッシュを実装しました。これは、それ自体に対してクエリを実行するときに使用するList<T>
のと同じ方法でクエリを実行する必要があります。Expression<Func<T, bool>>
Table<T>
これらの最速/最良の方法は何ですか:
List<T>.AsQueryable().FirstOrDefault(Expression<Func<T, bool>>)
また
List<T>.FirstOrDefault(Expression<Func<T, bool>>.Compile())
?
編集:私が使用している方法であるため、WhereをFirstOrDefaultに変更しました。質問を書いたとき、私は少し疲れていたと思います。FirstOrDefault は、Where のようにすべてのアイテムを 1 回調べますか、それとも最初のヒット (存在する場合) で実際に停止しますか?