ホームページ >バックエンド開発 >C++ >LINQ の集計関数は、合計、連結、乗算に対してどのように機能しますか?

LINQ の集計関数は、合計、連結、乗算に対してどのように機能しますか?

DDD
DDDオリジナル
2024-12-26 02:11:09616ブラウズ

How Does LINQ's Aggregate Function Work for Summation, Concatenation, and Multiplication?

LINQ 集計: 包括的な説明

LINQ 集計関数は、前の操作の結果を考慮しながら、一連の要素に対して操作を実行します。基本的に、シーケンス内の各要素を繰り返し処理し、操作の結果を蓄積します。

説明と例

Aggregate を理解するには、次の定義と例を考慮してください。

  • 合計: 一連の合計を計算します。数値。
var nums = new[] { 1, 2, 3, 4 };
var sum = nums.Aggregate((a, b) => a + b);
Console.WriteLine(sum); // Output: 10 (1 + 2 + 3 + 4)
  • 文字列連結: 文字列の配列からカンマ区切りのリストを作成します。
var chars = new[] { "a", "b", "c", "d" };
var csv = chars.Aggregate((a, b) => a + "," + b);
Console.WriteLine(csv); // Output: a,b,c,d
  • シードによる乗算:シード値から始まり、シーケンス内の各要素で乗算します。
var multipliers = new[] { 10, 20, 30, 40 };
var multiplied = multipliers.Aggregate(5, (a, b) => a * b);
Console.WriteLine(multiplied); // Output: 1200000 ((((5 * 10) * 20) * 30) * 40)

詳細な例

例 1: 合計数値

var nums = new[] { 1, 2, 3, 4 };
var sum = nums.Aggregate((a, b) => a + b);

説明:

  • Aggregate 関数は、最初の 2 つの要素 1 と 2 から始まり、加算 (1 2 = 3).
  • 結果 (3) は、次のアキュムレータ (a) になります。次のステップ。
  • アキュムレータは次の要素 3 と結合され、新しいアキュムレータ (6) が生成されます。
  • このプロセスは、すべての要素が処理されるまで継続され、合計が累積されます。 (6 4 = 10).

例 2: CSV を作成する文字列

var chars = new[] { "a", "b", "c", "d" };
var csv = chars.Aggregate((a, b) => a + "," + b);

説明:

  • 前の例と同様に、Aggregate はシーケンスを繰り返します。
  • それは次のように開始されます。最初の 2 つの要素 (「a」と「b」) を組み合わせて、 "a,b".
  • アキュムレータ ("a,b") は次の要素 ("c") と連結されて "a,b,c" になります。
  • 最終結果は、すべての要素がカンマで区切られた文字列 ("a,b,c,d") です。

例3: シードを使用した数値の乗算

var multipliers = new[] { 10, 20, 30, 40 };
var multiplied = multipliers.Aggregate(5, (a, b) => a * b);

説明:

  • 集計関数は、「シード」値 (5) が含まれるオーバーロードを受け入れます。
  • シードは、 accumulator.
  • この関数は、アキュムレータに最初の要素 (5 * 10 = 50) を乗算します。
  • 結果のアキュムレータ (50) は、次の要素 (50 * 20 = 1000) で乗算されます。 ).
  • このプロセスは継続し、最終的にすべての要素とシードを乗算します。 (1000 * 40 = 1200000).

結論

LINQ Aggregate は、合計、連結、乗算累積など、シーケンスに対してさまざまな操作を実行する強力な方法を提供します。その多用途性と使いやすさにより、C# やその他の .NET 言語でのデータ操作のための貴重なツールとなっています。

以上がLINQ の集計関数は、合計、連結、乗算に対してどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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