在 C# 中對整數陣列求和

Abdullahi Salawudeen 2023年1月30日 2022年4月20日
  1. 使用 sum() 方法對 C# 中的整數陣列求和
  2. 使用 Array.foreach 方法對 C# 中的整數陣列求和
  3. 使用 Enumerable.Aggregate() 方法對 C# 中的整數陣列求和
在 C# 中對整數陣列求和

本文將介紹如何在 C# 中對整數陣列求和。

使用 sum() 方法對 C# 中的整數陣列求和

IEnumerable 派生自 System.Collections.Generic 名稱空間。它是一個定義 GetEnumerator 函式的介面。它允許迴圈通過一組類或匿名型別列表。

sum() 方法是在 System.Linq 名稱空間中找到的擴充套件方法。此方法將 IEnumerable 中的所有數值相加,如列表或陣列。

sum() 方法可用於實現 IEnumerable 的物件,該物件具有所有 C# 數字資料型別,如 intlongdoubledecimal。這是一種通過避免迴圈來新增數字集合的優化方式。

這種方法鼓勵更少的程式碼行,並可能減少錯誤,但有一些開銷使其比 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

使用 Array.foreach 方法對 C# 中的整數陣列求和

foreach 語句是一種簡潔且不太複雜的遍歷陣列元素的方法。foreach 方法以升序處理一維陣列的元素,從索引 0 處的元素開始到索引 array.length - 1 處的元素。

delegate 是一種型別安全且安全的引用型別。它用於封裝命名或匿名方法。

必須使用具有相容返回型別的方法或 lambda 表示式來例項化委託。我們使用巢狀在 foreach 語句中的 lambda 表示式。

下面是使用 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

使用 Enumerable.Aggregate() 方法對 C# 中的整數陣列求和

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