LINQ: サブセット作成のための強力なツール
データ操作では、多くの場合、大規模なコレクションを、より小さな管理可能なサブセットに分割する必要があります。 LINQ (言語統合クエリ) は、この一般的なタスクに洗練された効率的なソリューションを提供します。
LINQ ソリューション
次の LINQ 拡張メソッドは、コレクションを複数のサブセットに効果的に分割します。
<code class="language-csharp">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>
このメソッドは、コレクション (list
) と必要な数のサブセット (parts
) を受け入れます。 LINQ の GroupBy
演算子と Select
演算子を利用して入力を分割します。モジュロ演算子 (%
) は、コレクション サイズが parts
で完全に割り切れない場合を処理して、サブセット全体に均等に分散することを保証します。
実際の応用
Split
メソッドの使用方法は次のとおりです。
<code class="language-csharp">List<int> numbers = Enumerable.Range(1, 100).ToList(); IEnumerable<IEnumerable<int>> splitNumbers = numbers.Split(5);</code>
この例では、100 個の整数のリストを 5 つのサブセットに分割します。 元のコレクションのサイズが parts
.
LINQ アプローチの利点
このタスクに LINQ を採用すると、いくつかの重要な利点が得られます。
以上がLINQ を使用してコレクションを効率的にサブセットに分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。