Search code examples
c#arraysinteger

How to sum up an array of integers in C#


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[]?".


Solution

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

    int sum = arr.Sum();
    

    Sample

    int[] arr = new int[] { 1, 2, 3 };
    int sum = arr.Sum();
    
    // output = 6
    Console.WriteLine(sum);