2009-08-25 13 views
8

Mam dwie tablice:Oblicz wszystkie możliwe pary przedmiotów z dwóch list?

string[] Group = { "A", null, "B", null, "C", null }; 

string[] combination = { "C#", "Java", null, "C++", null }; 

Chciałbym zwrócić wszystkie możliwe kombinacje takich jak:

{ {"A","C#"} , {"A","Java"} , {"A","C++"},{"B","C#"},............ } 

null powinny być ignorowane.

Odpowiedz

27
Group.Where(x => x != null) 
    .SelectMany(g => combination.Where(c => c != null) 
           .Select(c => new {Group = g, Combination = c})); 

Alternatywnie:

from g in Group where g != null 
from c in combination where c != null 
select new { Group = g, Combination = c } 
+0

Dzięki Mehrdad do natychmiastowej reakcji. – user160677

+1

Każdy pomysł, jak to zrobić skutecznie, aby uzyskać permutacje nie tylko kombinacji? (znaczenie {"A", "C#"} i {"C#", "A"} będą uważane za dwa sepeate przedmioty)? –