Tablice wielowymiarowe
Macierze i tablice postrzępione.
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]); // 0Dostę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]); // 9Inicjowanie 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]); // 4Metoda 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)); // 3Przechodzenie 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]); // 5Tablice 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]); // 5Prostoką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); // 3Sumowanie 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); // 10Szybkie 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#.
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
- Deklarowanie tablic
- Indeksowanie i długość
- Iterowanie po tablicach
- Tablice wielowymiarowe