ホームページ >バックエンド開発 >C++ >LINQ の流暢な構文とクエリ式構文: データ クエリにはどちらのアプローチが最適ですか?

LINQ の流暢な構文とクエリ式構文: データ クエリにはどちらのアプローチが最適ですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-27 08:06:11352ブラウズ

Fluent vs. Query Expression Syntax in LINQ: Which Approach Is Best for Your Data Queries?

LINQ クエリ構文: Fluent 構文とクエリ式構文の比較

.NET の LINQ (統合言語クエリ) は、データのクエリと操作に革命をもたらします。 Fluent 構文とクエリ式構文はどちらも強力な機能を提供しますが、開発者はどちらのアプローチがより優れているかに悩むことがよくあります。

相違点: スコープ変数

クエリ式の構文は、複数のスコープ変数を扱う場合に適切に機能します。これは、次のシナリオで重要です。

  • クエリに新しい変数を導入するには、let キーワードを使用します
  • 複数のデータソースの使用 (つまり、複数の from 句)
  • 接続操作

次の例は、クエリでスコープ変数を使用して、名前とそれに対応する完全な名前を配列から抽出する方法を示しています。

<code class="language-csharp">string[] fullNames = { "Anne Williams", "John Fred Smith", "Sue Green" };

var query =
  from fullName in fullNames
  from name in fullName.Split()
  orderby fullName, name
  select name + " came from " + fullName;</code>

メソッド構文の利点 一方、Fluent 構文はクエリ演算子の完全なセットへのアクセスを提供し、メソッド チェーンを通じてクエリを簡素化します。

クエリ構文とメソッド構文を混合する
<code class="language-csharp">var 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">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>

最終的に、流暢な構文とクエリ式構文のどちらを選択するかは、クエリの特定の要件によって異なります。クエリ式の構文は、複数のスコープ変数を操作する場合に不可欠であり、単純なクエリの場合、流暢な構文により柔軟性とシンプルさが実現します。これらの利点を理解することで、開発者は両方のアプローチを効果的に活用して、データの操作と取得の操作を最適化できます。

以上がLINQ の流暢な構文とクエリ式構文: データ クエリにはどちらのアプローチが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。