C# で整数の配列を合計する

Abdullahi Salawudeen 2023年10月12日
  1. C# の sum() メソッドで整数の配列を合計する
  2. C#Array.foreach メソッドを使用して整数の配列を合計する
  3. C#Enumerable.Aggregate() メソッドを使用して整数の配列を合計する
C# で整数の配列を合計する

この記事では、C# で整数の配列を合計する方法を紹介します。

C# の sum() メソッドで整数の配列を合計する

IEnumerable は、System.Collections.Generic 名前空間から派生しています。これは、GetEnumerator 関数を定義するインターフェースです。これにより、クラスのコレクションまたは匿名タイプのリストをループできます。

sum()メソッドは、System.Linq 名前空間にある拡張メソッドです。このメソッドは、リストや配列などの IEnumerable 内のすべての数値を合計します。

sum() メソッドは、intlongdoubledecimal などのすべての C# 数値データ型で IEnumerable を実装するオブジェクトで使用できます。これは、ループを回避することによって数値のコレクションを追加するための最適化された方法です。

この方法では、コードの行数が減り、バグが減る可能性がありますが、オーバーヘッドが発生するため、for ループよりも遅くなります。

以下は、sum() を使用したコードの例です。

using System;
using System.Linq;
namespace MyApplication {
  class Program {
    static void Main(string[] args) {
      int[] arr = new int[] { 1, 2, 3 };
      int sum = arr.Sum();
      Console.WriteLine(sum);
    }
  }
}

出力:

6

C#Array.foreach メソッドを使用して整数の配列を合計する

foreach ステートメントは、配列要素を反復処理するためのきちんとした、それほど複雑ではない方法です。foreach メソッドは、インデックス 0 の要素からインデックス array.length-1 の要素まで、昇順で 1 次元配列の要素を処理します。

デリゲートは、タイプセーフで安全な参照型です。名前付きまたは匿名のメソッドをカプセル化するために使用されます。

デリゲートは、互換性のあるリターン型を持つメソッドまたはラムダ式でインスタンス化する必要があります。foreach ステートメントにネストされたラムダ式を使用します。

以下は、foreach メソッドを使用したコードの例です。

using System;
namespace MyApplication {
  class Program {
    static void Main(string[] args) {
      int[] arr = new int[] { 1, 2, 3 };
      int sum = 0;
      Array.ForEach(arr, i => sum += i);
      Console.WriteLine(sum);
    }
  }
}

出力:

6

C#Enumerable.Aggregate() メソッドを使用して整数の配列を合計する

Enumerable.Aggregate メソッドは、System.Linq 名前空間に存在します。前の結果を追跡または保存しながら、リストまたは配列の各要素に対して数学演算を実行します。

たとえば、配列または数値のリスト{2,4,6,8}に対して加算演算を実行する必要があります。Aggregate 関数は 2 と 4 を加算し、結果(つまり、6)を転送し、その結果を次の要素(6 + 6)で加算し、結果を転送してから、次の要素(12 + 8)で加算します。最後の数値が処理されたときに最終結果を返します。

以下はコードの例です。

using System;
using System.Linq;
namespace MyApplication {
  class Program {
    static void Main(string[] args) {
      int[] arr = new int[] { 1, 2, 3 };
      int sum = arr.Aggregate((total, next) => total + next);

      Console.WriteLine(sum);
    }
  }
}

出力:

6
Abdullahi Salawudeen avatar Abdullahi Salawudeen avatar

Abdullahi is a full-stack developer and technical writer with over 5 years of experience designing and implementing enterprise applications. He loves taking on new challenges and believes conceptual programming theories should be implemented in reality.

LinkedIn GitHub

関連記事 - Csharp Array