LINQ クエリ構文: Fluent 構文とクエリ式構文の比較
LINQ (統合言語クエリ) は、.NET 開発を大幅に強化し、データ処理のための簡潔で表現力豊かな構文を提供します。ただし、LINQ には、流暢な構文とクエリ式構文という 2 つの異なる構文オプションが用意されています。どちらの構文が有利でしょうか?
流暢な構文とクエリ式構文の違い
主な違いは、複数のスコープ変数の処理方法です。これは次のシナリオで一般的です。
このような場合、クエリ式構文を使用すると、複数のスコープ変数を定義および操作するための直感的な方法が提供されます。例:
<code class="language-csharp">query = (from fullName in fullNames from name in fullName.Split() orderby fullName, name select name + " came from " + fullName);</code>
メソッド構文 (流暢な構文) の利点
一方、メソッド構文は、より広範囲のクエリ演算子にアクセスでき、一般に単純なクエリの場合はより簡潔になります。例:
<code class="language-csharp">query = 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 to SQL クエリに使用されます:
<code class="language-csharp">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>
最終的に、流暢な構文とクエリ式構文のどちらを選択するかは、クエリの特定の要件によって異なります。複数のスコープ変数が含まれるシナリオの場合は、クエリ式構文の方が適していますが、単純なクエリの場合は、メソッド構文の方が柔軟性が高く、簡単です。
以上がLINQのFluentとQuery Expressionの構文:より多くの利点を提供する構文はどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。