利用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();
        }
    }
}

程式碼說明:

  1. 建立原始的 List<string>

    • 使用 Enumerable.Range(1, 35) 生成一個從 1 到 35 的整數序列,並使用 Select 方法將其轉換為 List<string>
  2. 分組邏輯

    • Select((item, index) => new { item, index }):這個 LINQ 查詢將每個元素與其索引進行配對。
    • GroupBy(x => x.index / 10):使用索引除以 10 來確定每個元素應屬於哪一組(0, 1, 2, 或 3)。
    • Select(g => g.Select(x => x.item).ToList()):將每個分組轉換回 List<string>
  3. 輸出結果

    • 使用 for 迴圈將每一組的內容輸出到控制台。

留言

這個網誌中的熱門文章

ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務

Oracle 例外控制(Exception Control)

Oracle 工作排程 DBMS_JOB 筆記