2012-04-04 10 views
1

私はproblem.Iだけバイナリ順列を取って、私はコーディングこのC#すべて順列

foreach (String s1 in array1) { 

foreach (String s2 in array2) { 

     String result = s1 + " " + s2 + " " + s3; 
     //Processing 

} 
} 

something.Butこのコードvalues.For順列を取る必要がありますアプリオリAlgorithm.Inアプリオリアルゴリズムを使用してプログラムを開発していますバイナリ、トリプル、4、クインテットの順列を自動的に取る必要があります。 あなたはこれについて考えていますか?上記のリンクからそのままコピー

答えて

2

Link

コード。

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})); 
} 
+1

美しい。私はいつもあなたが一般的なケースでそれをどうやってやろうと思った。 +1 – KeithS

関連する問題