首頁 > 後端開發 > C++ > 如何使用 LINQ 將集合拆分為子集合?

如何使用 LINQ 將集合拆分為子集合?

Linda Hamilton
發布: 2025-01-20 04:01:09
原創
775 人瀏覽過

How Can I Split a Collection into Sub-Collections Using LINQ?

利用LINQ將集合分成子集合

將一個集合分割成更小的部分是常見的程式設計任務。使用LINQ(語言整合查詢),您可以透過一個簡單的擴充方法來實現這一點。

將集合分成N個部分

擴充方法Split接收一個集合和所需的部分數量作為輸入,並傳回一個IEnumerable<IEnumerable>,表示子集合。演算法根據目前索引除以部分數量時的餘數將元素分成部分。

實作:

<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方法可用於任何IEnumerable集合。例如,要將數字清單分成3部分:

<code class="language-csharp">var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var parts = numbers.Split(3);</code>
登入後複製

這將傳回一個包含3個IEnumerable集合的IEnumerable,每個集合包含原始清單的一個子集:

<code>部分1:{ 1, 4, 7 }
部分2:{ 2, 5, 8 }
部分3:{ 3, 6, 9 }</code>
登入後複製

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板