發表文章

目前顯示的是 8月, 2024的文章

C# Func用法

C# Func用法 在 C# 中, Func 是一個委託類型,用於表示具有返回值的方法。 Func 委託可以有零個或多個輸入參數,但必須有一個返回值。這使得 Func 非常適合用來封裝那些需要計算並返回結果的方法。 基本語法 Func 委託的定義如下: Func<in T1, in T2, ..., out TResult> T1, T2, ... 是輸入參數的類型。 TResult 是返回值的類型。 示例 以下是一些 Func 的常見用法示例: 1.沒有參數,返回一個值 Func<int> getRandomNumber = () => new Random().Next(1, 100); int number = getRandomNumber(); Console.WriteLine(number); 這個例子中, getRandomNumber 是一個沒有輸入參數但返回一個隨機數的 Func<int> 委託。 2.一個參數,返回一個值 Func<int, int> square = x => x * x; int result = square(5); Console.WriteLine(result); // Output: 25 3.多個參數,返回一個值 Func<int, int, int> add = (a, b) => a + b; int sum = add(3, 4); Console.WriteLine(sum); // Output: 7 在這個例子中, add 是一個接受兩個整數並返回它們和的 Func<int, int, int> 。 Func 的優點 簡潔 :使用 Func 可以減少冗長的代碼,特別是在使用匿名方法或 Lambda 表達式時。 靈活 :可以將方法作為參數傳遞給其他方法,這在 LINQ 查詢中非常常見。 與 Action 的比較 Func 與 Action 類似,但 Action 沒有返回值。 Func 總是有返回值,因此如果你需要一個不返回值的委託,應該使用 Action 。 綜合應用 例如,在 LINQ 查詢中,你經常會看到 Func 被用來

利用LINQ將List依指定項目數量切割為多筆

利用LINQ將List依指定項目數量切割為多筆 using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { // 假設這是原始的 List<string> List<string> originalList = Enumerable.Range(1, 35).Select(i => $"Item{i}").ToList(); // 使用 LINQ 分割成多個組 List<List<string>> groups = originalList .Select((item, index) => new { item, index }) .GroupBy(x => x.index / 10) .Select(g => g.Select(x => x.item).ToList()) .ToList(); // 輸出結果 for (int i = 0; i < groups.Count; i++) { Console.WriteLine($"Group {i + 1}:"); foreach (var item in groups[i]) { Console.WriteLine(item); } Console.WriteLine(); } } } 程式碼說明: 建立原始的 List<string> 使用 Enumerable.Range(1, 35) 生成一個從 1 到 35 的整數序列,並使用 Select 方法將其轉換為 List<string> 。 分組