C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のIEnumerableとIQueryableの違いは何ですか?


  • IEnumerableはSystem.Collections名前空間に存在します。
  • IQueryableはシステムに存在します。 Linq名前空間。
  • IEnumerableとIQueryableはどちらもフォワードコレクションです。
  • IEnumerableは遅延読み込みをサポートしていません
  • IQueryableは遅延読み込みをサポートします
  • データベースからデータをクエリするIEnumerableは、サーバー側でselectクエリを実行し、クライアント側でデータをメモリ内にロードしてから、データをフィルタリングします。
  • データベースからデータをクエリすると、IQueryableはすべてのフィルターを使用してサーバー側でselectクエリを実行します。
  • IEnumerableExtensionメソッドは機能オブジェクトを取ります。
  • IQueryable拡張メソッドは式オブジェクトを取ります。これは式ツリーを意味します。

IEnumerable

dbContext dc = new dbContext ();
IEnumerable
<SocialMedia>
list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
</SocialMedia>

上記のクエリに対して生成されたSQLステートメント

SELECT [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0

IQueryable

dbContext dc = new dbContext ();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);

上記のクエリに対して生成されたSQLステートメント

SELECT top 1 [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0

  1. DirectX11とDirectX12の違いは何ですか?

    DirectXは、マルチメディアコンテンツをレンダリングし、グラフィカルハードウェアと通信するためにソフトウェアによって使用されるAPIまたはアプリケーションプログラミングインターフェイスのコレクションです。 DirectXの主要コンポーネントAPIであるDirect3Dは、ソフトウェアとグラフィックスハードウェア間の通信を処理します。すべてのハードウェアが異なるため、関数と呼び出しの標準化されたライブラリを使用してグラフィックカードと通信すると、ゲーム開発がスピードアップします。これはハードウェアアブストラクションと呼ばれ、APIの主な仕事です。 車について考えてみましょう。1台の車を運転

  2. C#のリストと配列の違いは何ですか?

    配列は同じタイプの要素の固定サイズのシーケンシャルコレクションを格納しますが、リストはジェネリックコレクションです。 リストを定義するには- List<string7gt; myList = new List<string>(); リストに要素を設定するには、Addメソッド-を使用する必要があります myList.Add("Audi"); myList.Add("BMW"); myList.Add("Chevrolet"); myList.Add("Hyundai"); 配列を定義するには-