C# Academy · Lekcja

Tablice wielowymiarowe

Macierze i tablice postrzępione.

Lekcja 4 z 413 kroki

Tablice wielowymiarowe to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.

Coś więcej niż jeden wiersz

Do tej pory tablice były pojedynczym wierszem wartości. Tablica wielowymiarowa przechowuje wartości w siatce, podobnie jak arkusz kalkulacyjny z wierszami i kolumnami.

Doskonale nadają się one do plansz gier, tabel i macierzy.

Deklarowanie tablicy 2D

Tablica dwuwymiarowa używa przecinka wewnątrz nawiasów kwadratowych: [,]. Należy podać dwa rozmiary: liczbę wierszy i liczbę kolumn.

Ta siatka ma 2 wiersze i 3 kolumny, więc przechowuje 6 wartości.

int[,] grid = new int[2, 3];
Console.WriteLine(grid[0, 0]); // 0

Dostęp do komórek

Aby odczytać komórkę lub zapisać w niej wartość, należy podać indeks wiersza i indeks kolumny, rozdzielając je przecinkiem.

Oba indeksy są numerowane od zera, tak samo jak w tablicach jednowymiarowych.

int[,] grid = new int[2, 3];
grid[0, 1] = 7;
grid[1, 2] = 9;
Console.WriteLine(grid[1, 2]); // 9

Inicjowanie siatki

Tablicę 2D można wypełnić podczas tworzenia za pomocą zagnieżdżonych nawiasów klamrowych. Każda grupa wewnętrzna reprezentuje jeden wiersz.

Wszystkie wiersze muszą mieć taką samą liczbę kolumn.

int[,] grid = { { 1, 2, 3 }, { 4, 5, 6 } };
Console.WriteLine(grid[1, 0]); // 4

Metoda GetLength

W przypadku dwóch wymiarów Length podaje całkowitą liczbę komórek. Aby uzyskać rozmiar jednego wymiaru, należy użyć metody GetLength.

GetLength(0) to liczba wierszy, a GetLength(1) to liczba kolumn.

int[,] grid = { { 1, 2, 3 }, { 4, 5, 6 } };
Console.WriteLine(grid.Length);        // 6
Console.WriteLine(grid.GetLength(0));  // 2
Console.WriteLine(grid.GetLength(1));  // 3

Przechodzenie po siatce

Aby odwiedzić każdą komórkę, należy użyć jednej pętli dla wierszy, umieszczonej wewnątrz drugiej pętli dla kolumn. Pętla zewnętrzna wybiera wiersz, a wewnętrzna przechodzi przez jego kolumny.

Należy użyć GetLength, aby pętle odpowiadały rzeczywistemu rozmiarowi.

int[,] grid = { { 1, 2 }, { 3, 4 } };
for (int r = 0; r < grid.GetLength(0); r++)
{
    for (int c = 0; c < grid.GetLength(1); c++)
    {
        Console.WriteLine(grid[r, c]);
    }
}

Kompletny program z siatką

Ten kompletny program tworzy małą siatkę, a następnie wyświetla każdą wartość wraz z jej wierszem i kolumną.

Proszę go uruchomić, aby zobaczyć wszystkie cztery wymienione komórki.

int[,] grid = { { 10, 20 }, { 30, 40 } };
for (int r = 0; r < grid.GetLength(0); r++)
{
    for (int c = 0; c < grid.GetLength(1); c++)
    {
        Console.WriteLine("[" + r + "," + c + "] = " + grid[r, c]);
    }
}

Trzy wymiary

Można dodawać kolejne wymiary, używając większej liczby przecinków. Tablica 3D korzysta z zapisu [,,] i trzech rozmiarów.

Można wyobrazić ją sobie jako stos siatek. Takie tablice są rzadsze, ale obowiązują w nich te same zasady.

int[,,] cube = new int[2, 2, 2];
cube[1, 1, 1] = 5;
Console.WriteLine(cube[1, 1, 1]); // 5

Tablice postrzępione

Tablica postrzępiona to tablica tablic zapisywana jako [][]. W przeciwieństwie do prostokątnej siatki każdy wiersz może mieć inną długość.

Dostęp do niej uzyskuje się za pomocą dwóch oddzielnych par nawiasów kwadratowych.

int[][] jagged = new int[2][];
jagged[0] = new int[] { 1, 2 };
jagged[1] = new int[] { 3, 4, 5 };
Console.WriteLine(jagged[1][2]); // 5

Prostokątna a postrzępiona

Prostokątna tablica [,] zawsze ma wiersze o tej samej długości i przechowuje dane w sposób zwarty. Tablica postrzępiona [][] pozwala na różne długości wierszy.

Tablicę prostokątną należy wybrać w przypadku rzeczywistych tabel, a postrzępioną — gdy długość wierszy naturalnie się różni.

int[][] rows = { new[] { 1 }, new[] { 2, 3, 4 } };
Console.WriteLine(rows[0].Length); // 1
Console.WriteLine(rows[1].Length); // 3

Sumowanie siatki

Można zsumować wszystkie wartości w siatce, dodając każdą komórkę wewnątrz zagnieżdżonych pętli.

Ten schemat można zastosować do dowolnej liczby wierszy i kolumn.

int[,] grid = { { 1, 2 }, { 3, 4 } };
int total = 0;
foreach (int v in grid)
{
    total += v;
}
Console.WriteLine(total); // 10

Szybkie sprawdzenie

Sprawdź swoją wiedzę o tablicach wielowymiarowych.

Podsumowanie

Nauczyłeś się tworzyć siatki za pomocą [,], uzyskiwać dostęp do komórek za pomocą indeksów wierszy i kolumn oraz określać ich rozmiar za pomocą GetLength.

Zagnieżdżone pętle odwiedzają każdą komórkę, dodatkowe przecinki dodają wymiary, a tablice postrzępione [][] pozwalają na wiersze o różnej długości. Możesz już przechowywać i przetwarzać tabele danych w C#.

Bezpłatny start

Ucz się C# dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
93
Lekcje
346

Często zadawane pytania

Czy lekcja „Tablice wielowymiarowe” jest bezpłatna?

Tak — pełny tekst „Tablice wielowymiarowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Tablice wielowymiarowe”?

Macierze i tablice postrzępione. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Tablice wielowymiarowe”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Deklarowanie tablic
  2. Indeksowanie i długość
  3. Iterowanie po tablicach
  4. Tablice wielowymiarowe
← Powrót do C# Academy