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

У меня есть два массива:

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

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

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

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

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


person user160677    schedule 25.08.2009    source источник


Ответы (1)


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 }
person mmx    schedule 25.08.2009
comment
Спасибо Мердад за немедленный ответ. - person user160677; 25.08.2009
comment
Любая идея, как сделать это эффективно, чтобы получить перестановки не только комбинации? (это означает, что {A, C#} и {C#, A} будут считаться двумя отдельными элементами)? - person Omri Btian; 12.03.2015