iQueryable
c#開発者は、コレクションを操作するときにIQueryable<T>
およびIEnumerable<T>
に遭遇することがよくあります。 それらの違いを理解することは、効率的なLINQクエリを書くために重要です。
共有された特性:延期された実行
とIQueryable<T>
の両方が延期された実行を採用しています。 これは、結果が実際に必要になるまでクエリが実行されないことを意味し、効率が向上します。
IEnumerable<T>
IQueryable<T>
いつiqueryableを使用するか
を選択してください:IEnumerable<T>
データベースの最適化が重要です:
データの取得から恩恵を受けるページングまたは同様の操作が必要です。
データベースでのクエリの洗練:IQueryable<T>
データ転送を減らすために、データベース内でさらにフィルタリングまたは操作が発生するはずです。
データベース固有の最適化は主要な関心事ではありません。
などのLINQメソッドを使用しています。
IEnumerable<T>
var goldCustomers = db.Customers .Where(c => c.City == "<city>") .Skip(pageNumber * pageSize) .Take(pageSize);
IQueryable<T>を使用して、指定された都市のすべての顧客が最初にメモリに積み込まれ、効率が大幅に低下します。 したがって、大きなデータセットとページングを含むシナリオの好みの選択肢です。
以上がiQueryable vs. iEnumerable:最適なLinqパフォーマンスにいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。