Gibt es einen besseren kürzeren Weg als die Iteration über das Array?
int[] arr = new int[] { 1, 2, 3 };
int sum = 0;
for (int i = 0; i < arr.Length; i++)
{
sum += arr[i];
}
Klärung:
Besser bedeutet in erster Linie sauberer Code, aber Hinweise auf Leistungsverbesserungen sind ebenfalls willkommen. (Wie bereits erwähnt: Aufteilung großer Arrays).
Es ist nicht so, dass ich auf der Suche nach einer enormen Leistungsverbesserung war - ich habe mich nur gefragt, ob genau diese Art von syntaktischem Zucker nicht bereits verfügbar war: "There's String.Join - was zum Teufel ist mit int[]?".
Vorausgesetzt, Sie können .NET 3.5 (oder neuer) und LINQ verwenden, versuchen Sie
int sum = arr.Sum();
Ja, die gibt es. Mit .NET 3.5:
int sum = arr.Sum();
Console.WriteLine(sum);
Wenn Sie nicht mit .NET 3.5 arbeiten, können Sie dies tun:
int sum = 0;
Array.ForEach(arr, delegate(int i) { sum += i; });
Console.WriteLine(sum);