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

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

Mary-Kate Olsen
リリース: 2025-01-20 03:51:09
オリジナル
910 人が閲覧しました

How Can I Efficiently Split a Collection into Subsets Using LINQ?

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 構文により、コードの明瞭さが向上します。
  • パフォーマンス: LINQ の最適化された実装により、効率的な処理が保証されます。
  • 汎用性: このメソッドは、さまざまなコレクション タイプとサブセット サイズに適応できます。

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

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