は、私はフィルタリングされたリストを返すMyList.OrderBy(x => x.prop1)
んLINQは "クエリ"を最適化する方法を知っていますか?
var Ordered = MyList.OrderBy(x => x.prop1).ThenBy(x => x.prop2);
ような何かを行うと仮定し、それがさらにThenBy(x => x.prop2)
によってそのリストをフィルタリングしていますか?つまり、
と等価ですか?
明らかにそれはコンパレータでソートアルゴリズムを実行することによって、これを最適化することが可能だからです。
var Ordered = MyList.Sort((x,y) => x.prop1 != y.prop1 ? x.prop1 < y.prop1 : (x.prop2 < y.prop2));
それは、最適化のいくつかの並べ替えをするのかと中間リストがプロセスに返されていない、そしてそれはどのように知っていない場合どうやってするか?メソッドチェーンを最適化するクラスをどうやって書くのですか?意味がありません。
LINQの味は?オブジェクトへのLINQ、エンティティへのLINQなど –
そしてLinqがエンティティにLinqプロバイダの場合は?沢山あります。 Linq to Entitiesプロバイダがクエリをよりよく最適化するようにEF7に変更が加えられていることに注意してください。 –
データベースに接続している場合は、SQLプロファイラを使用して、それぞれのケースで生成されたデータベースクエリを比較し、違いがあればそれが何であるかを確認します。 – ChrisF