Cree todas las combinaciones posibles de elementos en una lista usando Linq y C #

Tengo una tabla de categorías:

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

Y una tabla de artículos de categoría.

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

Necesito recorrer todos los elementos y mostrarlos en etiquetas como esta:

<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>

Tenga en cuenta: podría haber más o menos categorías. No está predeterminado.

¿Alguna sugerencia? Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta