C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のAggregateメソッドとは?配列要素を集計・演算する方法を解説

C#のLINQに用意されているAggregate(集計)メソッドを使うと、Sum(合計)、Min(最小値)、Max(最大値)、Average(平均)といった数学的な演算を柔軟に実装できます。

Aggregateメソッドは、ラムダ式で指定した処理をシーケンスの各要素に順番に適用し、最終的に1つの結果へと集約します。ここでは、配列の全要素を掛け合わせる例を通して、その使い方を見ていきましょう。

サンプル:配列要素の積を求める

まずは、次のような整数型の配列を用意します。

int[] arr = { 10, 15, 20 };

この配列に対して、Aggregate()メソッドを次のように呼び出します。

arr.Aggregate((x, y) => x * y);

このラムダ式 (x, y) => x * y では、最初に先頭の2要素(10と15)が掛け合わされ、その結果(150)が次の要素(20)とさらに掛け合わされる、という処理が繰り返されます。最終的な結果として「3000」が返されます。

コード全体

using System;
using System.Linq;
using System.IO;
public class Demo {
    public static void Main() {
        int[] arr = { 10, 15, 20 };
        // 要素の乗算
        int res = arr.Aggregate((x, y) => x * y);
        Console.WriteLine(res);
    }
}

実行結果

3000

このようにAggregateメソッドを使えば、独自の集計ロジックを自由に定義できます。加算や乗算だけでなく、文字列の連結や条件に応じた絞り込みなど、さまざまな場面で活用できる便利なメソッドです。

  1. C#のCompareTo()メソッドの使い方を解説

    C#では、2つの値を比較する際にCompareTo()メソッドを使用します。このメソッドは、呼び出し元の値と引数で渡した値を比較し、その大小関係を整数値として返します。CompareTo()メソッドの戻り値CompareTo()メソッドの戻り値は以下の3パターンです。0 = 両方の値が等しい場合1 = 呼び出し元の値が引数の値より大きい場合(第2の数値が小さい)-1 = 呼び出し元の値が引数の値より小さい場合(第1の数値が小さい)CompareTo()メソッドの実装例それでは、C#でCompareTo()メソッドを実装するサンプルコードを見てみましょう。ここでは、同じ値を持つ2つのint型変数

  2. RubyのArray#zipメソッド徹底解説!2つの配列をスマートに結合する方法

    2つの配列を要素ごとに比較して、その違いを見つけたいと思ったことはありませんか? あるいは、各インデックスごとに最大の数値を求めたい、キーのリストと値のリストを組み合わせてハッシュを作りたい――そんな場面にも出会うことがあるでしょう。 …これを「面倒な方法」で実装すると、次のようなコードになります。 例:冗長な書き方 a = [1,2,3,4,5] b = [1,2,3,6,8] c = a.map.with_index { |_, idx| [a[idx], b[idx]] } # [[1, 1], [2, 2], [3, 3], [4, 6], [5, 8]] 確かに動作はしますが