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 サイトの他の関連記事を参照してください。