2012-04-04 4 views
1

내가 문제 야가 이진 순열을 가지고, 내가 코딩이C# 목록의 모든 순열

foreach (String s1 in array1) { 

foreach (String s2 in array2) { 

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

} 
} 

무언가의이 코드 values.For 순열를 취해야합니다 연역적 Algorithm.In 연역적 알고리즘과 프로그램을 개발해야 바이너리, 트리플, 4, 5 중 순열을 자동으로 취해야합니다. 아이디어가 있으십니까? 위의 링크에서 그대로 복사

답변

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