ホームページ > データベース > mysql チュートリアル > LINQ を使用してデカルト積を実行し、複数の犬のセットから可能なすべての子犬の組み合わせを生成するにはどうすればよいでしょうか?

LINQ を使用してデカルト積を実行し、複数の犬のセットから可能なすべての子犬の組み合わせを生成するにはどうすればよいでしょうか?

DDD
リリース: 2025-01-17 06:52:09
オリジナル
925 人が閲覧しました

How Can LINQ Be Used to Perform Cartesian Products and Generate All Possible Puppy Combinations from Multiple Dog Sets?

LINQ を使用してデカルト積演算を実行する

デカルト積は、複数のセットの要素を組み合わせて、可能なすべての組み合わせを含む新しいセットを作成する数学演算です。これは、テストを生成したりデータを分析したりするときに役立ちます。

問題に関して言えば、犬のグループの中の子犬の可能な組み合わせをすべて見つけたいと考えています。それぞれの犬には複数の子犬がいる可能性があるため、1 匹の犬につき 1 匹の子犬を考慮するとよいでしょう。

LINQ を使用すると、各犬に関連付けられた子犬のコレクションにデカルト積演算を適用することでこれを実現できます。以下に例を示します:

<code class="language-csharp">var dog1Puppies = new[] { "puppy A", "puppy B" };
var dog2Puppies = new[] { "puppy C", "puppy D" };
var cartesianProduct = from dog1Puppy in dog1Puppies
                      from dog2Puppy in dog2Puppies
                      select new { dog1Puppy, dog2Puppy };

foreach (var pair in cartesianProduct)
{
    Console.WriteLine($"{pair.dog1Puppy}, {pair.dog2Puppy}");
}</code>
ログイン後にコピー

出力:

<code>puppy A, puppy C
puppy A, puppy D
puppy B, puppy C
puppy B, puppy D</code>
ログイン後にコピー

このコードは、LINQ の from 句を使用してデカルト積を生成し、select 句を使用して各組み合わせを表す匿名型を作成します。結果のセットには、両方のセットの子犬の可能な組み合わせがすべて含まれます。

犬のコレクションの数が可変の場合、回答で提供されている CartesianProduct 拡張メソッドを使用してデカルト積を動的に計算できます。このメソッドは、可変数のシーケンスを受け入れ、シーケンスのシーケンスを返します。各シーケンスは、入力シーケンス内の要素の一意の組み合わせを表します。

以上がLINQ を使用してデカルト積を実行し、複数の犬のセットから可能なすべての子犬の組み合わせを生成するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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