Sprawdzenie czy macierz jest macierzą kwadratową

Sprawdzenie czy macierz jest macierzą kwadratową
LE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

Hej wszystkim!
Wydawać by się mogło, że pytanie proste i pewnie tak jest ale mam chwilowe zaćmienie. Chciałabym sprawdzić czy macierz będąca elementem pary Tuple<List<List<double>>, List<double>> dataContents jest macierzą kwadratową, założyłam najgorszy przypadek, gdzie kolumny mają różny rozmiar względem siebie oraz wiersze mają różny rozmiar względem siebie tzn.:
2 3 4
1 2
6 7 9 0
2
Pomyślałam, że będę sprawdzać, czy dla każdej kolumny liczba elementów w każdym wierszu jest równa liczbie elementów w kolumnie, problem jest taki, że macierz jest przedstawiona jako List<List<double>> i nie do końca wiem w jaki sposób sprytnie po niej przejść i zliczyć długość każdej kolumny bez iteracji i zapisywania długości kolumn z zmiennej a nie mogę znaleźć żadnej metody getLength() dla kolumn, próbowałam również korzystać z toArray aby przejść na tablicę i tam iterować ale ciągle nie wiem jak otrzymać liczbę elementów w poszczególnych kolumnach bez czasochłonnego iterowania. Będę wdzięczna za jakieś pomysły!
Z góry wielkie dzięki!
Leks

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
0

List<double> ma metodę Count(), która ci powie, ile ma elementów. Zresztą List<List<double>> też taką metodę posiada :)

Pomyślałam, że będę sprawdzać, czy dla każdej kolumny liczba elementów w każdym wierszu jest równa liczbie elementów w kolumnie,

Jak najbardziej sensowne rozwiązanie.

Prawdopodobnie wyjdzie coś w stylu:

Kopiuj
public static bool CzyMacierzJestKwadratowa(List<List<double>> macierz)
{
    var liczbaWierszy = macierz.Count();

    foreach (var item in macierz)
        if (item.Count() != liczbaWierszy)
            return false;

    return true;
}
LE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

Bardzo dziękuję @Ktos za wskazówkę :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.