利用LINQ將列表分割成子列表
在編程中,將列表分割成子列表是一種常見的操作。在C#中,一種高效的方法是利用LINQ(語言集成查詢)的功能。讓我們探討如何使用LINQ將列表分割成大小相等的子列表。
假設您需要將一個對象列表分成大小為三的子列表。為此,我們可以使用以下代碼:
<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source) { return source .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / 3) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); }</code>
這段代碼首先將列表中的每個元素與其索引關聯起來。隨後,它根據索引除以三的結果對元素進行分組。此分組創建大小相等的子列表。最後,它將每個組中的值提取到一個列表的列表中。
為了舉例說明這個過程,讓我們假設我們有以下原始列表:
<code class="language-csharp">List<string> originalList = new List<string> { "a", "g", "e", "w", "p", "s", "q", "f", "x", "y", "i", "m", "c" };</code>
通過調用Split函數,每三個元素一組將存儲在一個結果列表的列表中的單獨子列表中:
<code class="language-csharp">List<List<string>> resultList = Split(originalList);</code>
resultList將包含以下子列表:
<code>[["a", "g", "e"], ["w", "p", "s"], ["q", "f", "x"], ["y", "i", "m"], ["c"]]</code>
使用LINQ簡潔高效的語法,我們演示瞭如何方便地將列表分割成指定大小的子列表。這種方法為各種數據操作場景提供了一種通用的解決方案。
以上是如何使用LINQ有效地將列表分為具有相等大小的標準列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!