ホームページ >バックエンド開発 >C++ >LINQ を使用してコレクションを複数の部分に分割するにはどうすればよいですか?

LINQ を使用してコレクションを複数の部分に分割するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-20 03:41:09651ブラウズ

How Can I Split a Collection into Multiple Parts Using LINQ?

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 構文を使用して、iparts のモジュロに基づいてグループを作成します。これにより、元のコレクション内の位置に基づいて要素が異なるパーツに割り当てられるようになります。
  • 最後に、結果が投影されて IEnumerable<T> オブジェクトのコレクションが生成されます。各オブジェクトは元のコレクションの一部を表します。

このソリューションは、LINQ を使用してコレクションをサブセットに分割する便利で読みやすい方法を提供します。

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

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