使用LINQ將集合分割為多個部分
本文探討資料分析與程式設計中一個常見問題:將集合分割成n個不同的子集。
LINQ解:
LINQ為此任務提供了一個簡潔優雅的解決方案。以下擴展方法Split<T>
實現了預期結果:
<code class="language-csharp">static class LinqExtensions { public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts) { int i = 0; var splits = from item in list group item by i++ % parts into part select part.AsEnumerable(); return splits; } }</code>
說明:
Split<T>
方法接受兩個參數:輸入集合(list
)和要將其分割成的部分數(parts
)。 i
初始化為零,這將用作分組元素的索引。 group by
語法根據i
和parts
的模來建立群組。這確保元素根據其在原始集合中的位置分配到不同的部分。 IEnumerable<T>
物件的集合,每個物件代表原始集合的一部分。 此解提供了一種方便易讀的方法,可以使用LINQ將集合拆分為多個子集。
以上是如何使用 LINQ 將集合拆分為多個部分?的詳細內容。更多資訊請關注PHP中文網其他相關文章!