ホームページ >バックエンド開発 >C++ >LINQ を使用してコレクションを (ほぼ) 同じサイズのサブセットに分割するにはどうすればよいですか?

LINQ を使用してコレクションを (ほぼ) 同じサイズのサブセットに分割するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-20 03:46:09541ブラウズ

How Can I Split a Collection into Subsets of (Nearly) Equal Size Using LINQ?

LINQ を使用してコレクションをサブセットに分割する

LINQ では、コレクションを指定した数のサブセットに分割できます。均等分割とは異なり、最後のサブセットには他のサブセットとは異なる数の要素が含まれる場合があります。

これを実現するには、単純な LINQ 拡張メソッドを使用できます。

<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>

このメソッドを使用すると、最後のサブセットのサイズが異なる可能性があることを確認しながら、コレクションをサブコレクションに分割できます。上記のコードは、サブセット数を法とするインデックスに基づいて要素をグループ化し、それらを異なるサブセットに効果的に割り当てることでこれを実現します。

以上がLINQ を使用してコレクションを (ほぼ) 同じサイズのサブセットに分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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