2014-11-14 5 views
-3

저는 IList 형식의 일부 순열이 각각 입니다. 1, 1, 3, 2, 2C# 많은 IList를 결합하여 새 목록을 만듭니다.

내 순열 콜렉션에서 나는 1, 1, 3, 2, 2, 2와 같이 보이는 2 개의 목록을 가질 수 있습니다. & 다른 1, 1, 2, 3 , 2, 2

나는 결과 조합이 1, 1, 2/3, 2/3, 2, 2

것을 얻기 위해 그들을 결합해야하지만 조합의 요구는 모든 순열에 적용 할 수 그 목록. 벨로우즈 코드는 작품을 제안하지만, 결합은 컬렉션의 항목을 줄여야합니다. 그러나 결합 후에 동일한 양의 순열이 결합 된 채로 남았습니까?

foreach (IList<char> p in permutationCollection) 
    { 
     var result = p.Zip(permutationCollection.ElementAt(x + 1), (first, second) => { if (first != second) { return first + "/" + second; } else return second.ToString(); }); 
    } 
+2

에 오신 것을 환영합니다 SO로 할 것입니다. 사람들을 돕기 위해 시도하기 전에 시도한 것을 보여줄 필요가 있습니다. 그렇지 않으면 단순히 사람들이 코드를 작성하도록하기 위해 여기에 오는 것입니다. – sr28

+0

목록이 두 개 또는 여러 개입니까? –

+1

예제 결과가 확실하지 않습니다. {1, 1, 2, 3, 2} 값을 {1, 1, 2, 3, 2, 2}와 결합하여 정확히 어떻게 설명 할 수 있습니까? 3, 2, 2}. 그리고 2/3은 2/3을 의미합니까 (0.66) 또는 2와 3을 의미합니까? 후자가 당신의 세트에서 어떻게 표현 되는가? – juharr

답변

1

의 LINQ 우편 트릭을 http://msdn.microsoft.com/en-us/library/vstudio/dd267698(v=vs.100).aspx

int[] numbers = { 1, 1, 3, 2, 2, 2 }; 
int[] words = { 1, 1, 2, 3, 2, 2 }; 

var result = numbers.Zip(words, (first, second) => {if(first != second) {return first + "/" + second;} else return second.ToString(); }); 
+0

감사합니다. @marcinn. 이제는 내 컬렉션에 분명히 많은 항목이 있습니다 (때로는 수백 가지). 어떻게 모두 조합합니까? 나는 루프에서 다음 항목을 취하려고했지만 그 모두를 결합하지 않을 것이다. foreach (permutationCollection의 IList ) { var result = p.Zip (permutationCollection.ElementAt (x + 1), (first, second) => {첫 번째 + "/"+ } else} return second.ToString();}); } – Haxsta