Załóżmy, że posiada poszarpaną tablicęoperacji tablic z tablicy n-wymiarowej LINQ (C#)
int[][] a = { new[] { 1, 2, 3, 4 }, new[] { 5, 6, 7, 8 }, new[] { 9, 10, 11, 12 } };
aby uzyskać sumę drugiego rzędu i suma drugiej kolumny, może zostać napisana obie linie kodu odpowiednio:
int rowSum = a[1].Sum();
int colSum = a.Select(row => row[1]).Sum();
Ale jeśli mamy definicję tablicy 2-wymiarowej
int[,] a = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
wyżej cytowanym kod nie będzie działać ze względu na compiller błędów:
Error 1 Wrong number of indices inside []; expected 2
Error 2 'int[*,*]' does not contain a definition for 'Select' and no extension method 'Select' accepting a first argument of type 'int[*,*]' could be found (are you missing a using directive or an assembly reference?)
Więc pytanie: Jak korzystać z metod LINQ z tablicami n-wymiarowej, ale nie te, postrzępione? I gdzie jest metoda przekształcania prostokątnej tablicy w poszarpane?
P.S. Próbowałem znaleźć odpowiedź w dokumentacji, ale bez rezultatu.
Wielu tablice wymiarowe nie są naprawdę (obszernie) obsługiwane w języku C# :-( – xanatos