ホームページ > バックエンド開発 > C++ > LINQ の流暢な構文とクエリ式: いつどちらを使用する必要がありますか?

LINQ の流暢な構文とクエリ式: いつどちらを使用する必要がありますか?

Mary-Kate Olsen
リリース: 2025-01-27 08:21:08
オリジナル
421 人が閲覧しました

Fluent Syntax vs. Query Expression in LINQ: When Should I Use Which?

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート