iQueryable
データを操作する場合、IQueryable<T>
とIEnumerable<T>
の選択はパフォーマンスと効率に大きな影響を与えます。 どちらもデータのシーケンスを表しますが、実行は劇的に異なります。このガイドは、それぞれをいつ使用するかを明確にします
コアの違いを理解する
データベース(LINQからSQL、LINQからエンティティ)などのリモートデータソースを含むシナリオで優れています。 その重要な機能は、IQueryable<T>
deferred execution:その結果が実際に必要になるまで実行されません。これにより、リソースの使用量が最適化され、データの取得が高速化されます。
メモリコレクションを操作します。 IEnumerable<T>
を使用してクエリは
最適な選択は、アプリケーションのニーズに依存します:
when:を使用します
IQueryable<T>
リモートデータベースにアクセスしていて、データ転送を最小限に抑えたいと考えています。
データはメモリに存在します(例:リスト、配列)。
IEnumerable<T>
即時クエリの実行が不可欠です。
IQueryable<T>
データベースからメモリにすべての顧客をロードしてから、フィルタリングし、大きなデータセットでパフォーマンスボトルネックを引き起こす可能性があります。
call force即時実行。<code class="language-csharp">// IQueryable<Customer> - Deferred Execution IQueryable<Customer> customers = from c in db.Customers where c.City == "New York" select c;</code>
以上がiQueryable vs. iEnumerable:いつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。