回答
LINQとのすべての可能な組み合わせを生成するには、「Descartes」と呼ばれるテクノロジーを使用できます。このプロセスには、複数の入力シーケンスから可能な各要素の組み合わせが含まれるシーケンスの作成が含まれます。次のコードは拡張メソッドを定義します
CartesianProduct
文字列の組み合わせを生成
<code class="language-csharp">static IEnumerable<IEnumerable<T>> CartesianProduct<T>(this IEnumerable<IEnumerable<T>> sequences) { IEnumerable<IEnumerable<T>> emptyProduct = new[] { Enumerable.Empty<T>() }; return sequences.Aggregate( emptyProduct, (accumulator, sequence) => from accseq in accumulator from item in sequence select accseq.Concat(new[] { item }) ); }</code>
変数には文字列シーケンスのシーケンスが含まれており、それぞれが線の組み合わせを表します。 CartesianProduct
<code class="language-csharp">var arr1 = new[] { "a", "b", "c" }; var arr2 = new[] { 3, 2, 4 }; var result = from cpLine in CartesianProduct( from count in arr2 select Enumerable.Range(1, count).Select(i => i.ToString())) select cpLine.Zip(arr1, (x1, x2) => x2 + "(" + x1 + ")");</code>
result
メソッドをデカルトの範囲と範囲の元の文字配列に適用することにより、指定された要素のすべての可能な組み合わせを効果的に生成できます。
以上がLINQを使用して2つの配列からキャラクターと整数のすべての可能な組み合わせを生成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。