利用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>
。
- 使用
分組邏輯
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>
。
輸出結果
- 使用
for
迴圈將每一組的內容輸出到控制台。
- 使用
留言
張貼留言