How to sum up an array of integers in C#

Filburt picture Filburt · Mar 10, 2010 · Viewed 276.8k times · Source

Is there a better shorter way than iterating over the array?

int[] arr = new int[] { 1, 2, 3 };
int sum = 0;
for (int i = 0; i < arr.Length; i++)
{
    sum += arr[i];
}

clarification:

Better primary means cleaner code but hints on performance improvement are also welcome. (Like already mentioned: splitting large arrays).


It's not like I was looking for killer performance improvement - I just wondered if this very kind of syntactic sugar wasn't already available: "There's String.Join - what the heck about int[]?".

Answer

Tomas Vana picture Tomas Vana · Mar 10, 2010

Provided that you can use .NET 3.5 (or newer) and LINQ, try

int sum = arr.Sum();