2009-08-25 8 views
8

Ho due matrici:Calcola tutte le possibili coppie di articoli da due elenchi?

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

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

Desidero tornare tutte le combinazioni possibili, come:

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

Il nulla dovrebbe essere ignorato.

risposta

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

alternativa:

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

Grazie Mehrdad per la risposta immediata. – user160677

+1

Qualche idea su come farlo in modo efficiente per ottenere permute non solo combinazioni? (che significa {"A", "C#"} e {"C#", "A"} saranno considerati due articoli sepeate)? –