LINQ を使用してコレクションを部分に分割する
この記事では、データ分析とプログラミングにおける一般的な問題、つまりセットを n 個の異なるサブセットに分割する問題について説明します。
LINQ ソリューション:
LINQ は、このタスクに対してシンプルで洗練されたソリューションを提供します。次の拡張メソッド Split<T>
は期待どおりの結果を実現します:
<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>
手順:
Split<T>
メソッドは、入力コレクション (list
) とそれを分割する部分の数 (parts
) の 2 つのパラメーターを受け入れます。 i
をゼロに初期化し、グループ化された要素のインデックスとして使用されます。 group by
構文を使用して、i
と parts
のモジュロに基づいてグループを作成します。これにより、元のコレクション内の位置に基づいて要素が異なるパーツに割り当てられるようになります。 IEnumerable<T>
オブジェクトのコレクションが生成されます。各オブジェクトは元のコレクションの一部を表します。 このソリューションは、LINQ を使用してコレクションをサブセットに分割する便利で読みやすい方法を提供します。
以上がLINQ を使用してコレクションを複数の部分に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。