2009-08-25 5 views
8

У меня есть два массива:Рассчитать все возможные пары элементов из двух списков?

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

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

я хочу вернуть все возможные комбинации, как:

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

Нулевая следует игнорировать.

ответ

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

В качестве альтернативы:

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

Благодаря Mehrdad для немедленного реагирования. – user160677

+1

Любая идея, как это сделать эффективно, чтобы получить перестановки не только для комбинаций? (означает {"A", "C#"} и {"C#", "A"} будут считаться двумя отдельными элементами)? –