LINQ クエリ: 滑らかな構文とクエリ式の比較
LINQ には、流暢な構文とクエリ式構文という 2 つのクエリ メソッドが用意されています。どちらもクエリ操作を実装できますが、適用可能なシナリオが異なります。
流暢な構文
Fluent 構文は C# に似ており、メソッド チェーンを使用してクエリを構築します。単純なクエリの場合、通常はより簡潔になり、すべてのクエリ演算子にアクセスできます。
クエリ式の構文
クエリ式の構文は SQL に似ているため、読みやすく、使いやすくなっています。これは、「let」キーワード、複数のジェネレーター、結合クエリの使用など、複数のスコープ変数が必要なシナリオでうまく機能します。
例: 複数のスコープ変数
クエリ式構文を使用した例を次に示します:
<code class="language-csharp">from fullName in fullNames from name in fullName.Split() orderby fullName, name select name + " came from " + fullName;</code>
流暢な構文を使用するには、次のように記述する必要があります:
<code class="language-csharp">fullNames .SelectMany(fName => fName.Split().Select(name => new { name, fName })) .OrderBy(x => x.fName) .ThenBy(x => x.name) .Select(x => x.name + " came from " + x.fName);</code>
明らかに、複数のスコープ変数が関係する場合、クエリ式の構文はより簡潔で理解しやすくなります。
混ぜてみましょう
両方の構文の利点を組み合わせるために、LINQ クエリで混合できます。例:
<code class="language-csharp">var query = from c in db.Customers let totalSpend = c.Purchases.Sum(p => p.Price) // 此处使用方法语法 where totalSpend > 1000 from p in c.Purchases select new { p.Description, totalSpend, c.Address.State };</code>
この例では、クエリ全体のクエリ式構文の可読性を維持しながら、「Sum」演算でメソッド構文を使用しています。 どちらの構文を選択するかは、特定のシナリオと個人の好みによって異なります。両方の構文を柔軟に使用すると、コードの読みやすさと効率が向上します。
以上がLINQ の流暢な構文とクエリ式: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。