首頁 > 後端開發 > C++ > LINQ如何有效地將列表分為指定尺寸的訂訂列表?

LINQ如何有效地將列表分為指定尺寸的訂訂列表?

Susan Sarandon
發布: 2025-02-01 22:36:13
原創
735 人瀏覽過

How Can LINQ Efficiently Split a List into Sublists of a Specified Size?

利用LINQ高效分割列表

LINQ為.NET應用程序提供了一種簡潔而強大的數據處理方式,其中包括根據各種條件將列表分割成子列表的功能。

考慮以下問題:您有一個List<T>,需要將其分割成若干個T對象的子列表,每個子列表的大小由索引決定。例如,原始列表包含以下元素:

<code>[a, g, e, w, p, s, q, f, x, y, i, m, c]</code>
登入後複製

您希望得到的子列表為:

<code>[a, g, e], [w, p, s], [q, f, x], [y, i, m], [c]</code>
登入後複製

子列表的大小可以作為函數參數指定。

一種使用LINQ的解決方案如下:

public static List<List<T>> Split<T>(IList<T> source, int sublistSize)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / sublistSize)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}
登入後複製

此代碼執行以下步驟:

  1. 按索引分組: GroupBy方法按元素索引對源列表中的元素進行分組,每個組代表一個不同的子列表。 sublistSize 參數控制子列表大小。
  2. 選擇子列表: Select方法用於將每個組中的值提取到一個新的列表中。
  3. 轉換為子列表列表: 然後使用ToList將組轉換為列表的列表。

結果是一個List,其中每個子列表包含來自原始列表的指定數量的元素,並根據項目索引進行分割。 通過傳入 sublistSize 參數,可以靈活控制子列表的大小。

以上是LINQ如何有效地將列表分為指定尺寸的訂訂列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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