Jak wygenerować iloczyn kartezjański w C#

Jak wygenerować iloczyn kartezjański w C#

Iloczyn kartezjański czyli iloczyn dwóch zbiorów. Załóżmy, że masz te dwie listy:
{X, Y, Z} i {1, 2, 3}

Iloczyn kartezjański z dwóch list byłby następujący:
{(X,1), (X,2), (X,3), (Y,1), (Y,2), (Y,3), (Z,1), (Z,2), ( Z,3)}

Poniżej przedstawiam jak to osiągnąć przy pomocy LINQ i metody SelectMany:

using System;
using System.Linq;

public class CartesianProduct
{
    public static void Main(string[] args)
    {
        string[] firstArray = new string[] {"X", "Y", "Z"};
        string[] secondArray = new string[] {"1", "2", "3"};
         
        var cartesianProduct = firstArray.SelectMany(a => secondArray.Select(b => $"{a}{b}"));
        
        foreach (string element in cartesianProduct) {
            Console.WriteLine(element);
        }
    }
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *