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

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

Linda Hamilton
リリース: 2025-01-20 04:01:09
オリジナル
774 人が閲覧しました

How Can I Split a Collection into Sub-Collections Using LINQ?

LINQ を使用してコレクションをサブコレクションに分割します

コレクションをより小さな部分に分割することは、一般的なプログラミング作業です。 LINQ (統合言語クエリ) を使用すると、簡単な拡張メソッドでこれを実現できます。

セットを N 個の部分に分割します

拡張メソッド Split は、コレクションと必要なパーツ数を入力として受け取り、サブコレクションを表す IEnumerable<IEnumerable> を返します。このアルゴリズムは、現在のインデックスを部分の数で割ったときの余りに基づいて、要素を部分に分割します。

実装:

<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 メソッドは、任意の IEnumerable コレクションで使用できます。たとえば、数値のリストを 3 つの部分に分割するには:

<code class="language-csharp">var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var parts = numbers.Split(3);</code>
ログイン後にコピー

これにより、3 つの IEnumerable コレクションを含む IEnumerable が返されます。各コレクションには、元のリストのサブセットが含まれます。

<code>部分1:{ 1, 4, 7 }
部分2:{ 2, 5, 8 }
部分3:{ 3, 6, 9 }</code>
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート