Crie todas as combinações possíveis de itens em uma lista usando Linq e C #

Eu tenho uma tabela de categorias:

<code> Catid | Desciption
 1 | Color
 2 | Size
 3 | Material
</code>

E uma tabela de itens de categoria

<code> Catid | Name
 1 | Red
 1 | Blue
 1 | Green
 2 | Small
 2 | Med
 2 l Large
 3 | Cotton
 3 | Silk
</code>

Eu preciso percorrer todos os itens e exibi-los em um rótulo como este:

<code> Red Small Cotton
 Red Small Silk
 Red Med Cotton
 Red Med Silk
 Red Large Cotton
 Red Large Silk
 Blue Small Cotton
 Blue Small Silk
 Blue Med Cotton
 Blue Med Silk
 Blue Large Cotton
 Blue Large Silk
 Green Small Cotton
 Green Small Silk
 Green Med Cotton
 Green Med Silk
 Green Large Cotton
 Green Large Silk
</code>

Por favor, note: pode haver mais ou menos categorias. Não é predeterminado.

Alguma sugestão? Obrigado

questionAnswers(2)

yourAnswerToTheQuestion