首頁 >後端開發 >C++ >如何使用 LINQ 將集合拆分為(幾乎)相同大小的子集?

如何使用 LINQ 將集合拆分為(幾乎)相同大小的子集?

Linda Hamilton
Linda Hamilton原創
2025-01-20 03:46:09541瀏覽

How Can I Split a Collection into Subsets of (Nearly) Equal Size Using LINQ?

使用LINQ將集合分割成子集

LINQ允許將集合分割成指定數量的子集。與平均分割不同,最後一個子集的元素數量可能與其他子集不同。

為了實現這一點,我們可以使用一個簡單的LINQ擴充方法:

<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>

使用此方法,您可以將集合分成子集合,同時確保最後一個子集的大小可能不同。上述程式碼透過根據元素索引模除子集數量進行分組來實現此目的,有效地將它們分配到不同的子集。

以上是如何使用 LINQ 將集合拆分為(幾乎)相同大小的子集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn