ホームページ >バックエンド開発 >C++ >LINQは、リストを指定されたサイズのサブリストに効率的に分割するにはどうすればよいですか?

LINQは、リストを指定されたサイズのサブリストに効率的に分割するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-02-01 22:36:13652ブラウズ

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>

サブリストのサイズは、関数パラメーターとして指定できます。

Linqを使用したソリューションは次のとおりです
<code>[a, g, e], [w, p, s], [q, f, x], [y, i, m], [c]</code>

このコードは、次の手順を実行します:

インデックスグループによると、
<code class="language-csharp">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();
}</code>

メソッドは、要素インデックスに従ってソースリストの要素に支払われ、各グループは異なるサブリストを表します。

パラメーター制御サブリンサイズ。
  1. サブリストを選択しますメソッドは、各グループの値を新しいリストに抽出するために使用されます。 GroupBy リストリストに変換されたsublistSize
  2. を使用して、グループをリストに変換します。 Select結果はであり、それぞれに元のリストの指定された要素が含まれており、プロジェクトのインデックスに従って分割されます。
  3. パラメーターに渡すことにより、サブリストのサイズを柔軟に制御できます。

以上がLINQは、リストを指定されたサイズのサブリストに効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。