ホームページ >バックエンド開発 >C++ >C#でLINQを使用して、リストを特定のサイズのサブリストに分割するにはどうすればよいですか?

C#でLINQを使用して、リストを特定のサイズのサブリストに分割するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-02-01 22:46:12874ブラウズ

How Can I Split a List into Sublists of a Specific Size Using LINQ in C#?

LINQを使用してリストをリストに分割します c#では、リストを小さなピースまたはチャイルドリストに分割する必要がある状況に遭遇することがよくあります。この目標を達成する1つの方法は、C#で強力なLINQ(言語統合クエリ)を拡大することです。 提供する例を考えてみましょう。あなたはを持っています、そして、あなたはまたは

を作成したいので、生成された各リストには、元のリストに一定数の連続アイテム(たとえば、3)が含まれます。

LINQでのこの問題を解決するには、次のコードを使用できます。 List<T> このコードは、最初にList結果の結果に基づいてソースリストの要素をグループ化します。これにより、それらをList<T>[]ブロックにグループ化します。次に、各グループを値リストに変換するためにオペレーターを使用し、

オペレーターを使用してリストのリストを作成します。

たとえば、

元のリストがあり、
<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source, int chunkSize)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / chunkSize)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}</code>

が3を持っている場合、生成されたサブリストはchunkSizechunkSizeSelectToList

になります。 。生成されたリストのサイズは、元のリストのアイテムの数と、グループ操作で指定されたサイズによって決定されます。一般に、このLINQベースのソリューションは、インデックスベースのセパレータに基づいてリストに分割できます。 このコードは、パラメーターを受け入れるように変更されており、より一般的になります。

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

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