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

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

Mary-Kate Olsen
發布: 2025-01-20 03:51:09
原創
910 人瀏覽過

How Can I Efficiently Split a Collection into Subsets Using LINQ?

LINQ:建立子集的強大工具

資料運算通常需要將大型集合分割成更小的、可管理的子集。 LINQ(語言整合查詢)為此常見任務提供了一個優雅且有效率的解決方案。

LINQ 解

以下 LINQ 擴充方法有效地將集合拆分為多個子集:

<code class="language-csharp">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>
登入後複製

此方法接受一個集合 (list) 和所需數量的子集 (parts)。 它利用 LINQ 的 GroupBySelect 運算子對輸入進行分區。模運算子 (%) 確保子集之間的均勻分佈,處理集合大小不能完全被 parts 整除的情況。

實際應用

以下是如何使用Split方法:

<code class="language-csharp">List<int> numbers = Enumerable.Range(1, 100).ToList();
IEnumerable<IEnumerable<int>> splitNumbers = numbers.Split(5);</code>
登入後複製

此範例將 100 個整數的清單分成 5 個子集。 請注意,如果原始集合的大小不是 parts.

的倍數,則產生的子集可能具有不同的大小

LINQ 方法的好處

使用 LINQ 來完成此任務有幾個關鍵優勢:

  • 可讀性:簡潔的 LINQ 語法增強了程式碼清晰度。
  • 效能:LINQ 的最佳化實作確保高效處理。
  • 多功能性:此方法適用於各種集合類型和子集大小。

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

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