kurs programowania c++ c# sql postgresql



C#


Tablica wielowymiarowa.

Żeby nie było tak prosto oprócz tablic jednowymiarowych, opisanych w poprzednim podrozdziale, istnieją także tablice wielowymiarowe. W takiej tablicy jedno pole (jeden element) jest reprezentowany przez dwa index-y. Do naszej tabeli z poprzedniego rozdziału (przechowującej polskie nazwy miesięcy) chcemy dopisać angielskie nazwy miesięcy. Poniżej wizualizacja takiej tabeli wielowymiarowej.

kurs c# csharp podstawy programowania tablica wielowymiarowa
Wizualizacja tablicy dwu wymiarowej.

Poniżej przykład deklaracji tablicy wielowymiarowej.

Listing 1

// deklaracja tablicy wielowymiarowej
string[,] nazwyMiesiecy;

Zwróć uwagę, że w nawiasie kwadratowym jest przecinek sugerujący, że jest to tablica wielowymiarowa (jeden przecinek sugeruje, że jest to tablica dwu wymiarowa).

Następnie musimy naszą tablicę zainicjalizować.

Listing 2

//inicjalizacja tablicy wielowymiarowej [2-wiersze,12-kolumn]
nazwyMiesiecy = new string[2, 12];

Teraz pozostaje nam wprowadzić do odpowiednich pól wartości naszej tablicy, co prezentuje poniższy kod.

Listing 3

//przypisanie wartości do poszczególnych pól tablicy wielowymiarowej
nazwyMiesiecy[0, 0] = "Styczeń";
nazwyMiesiecy[1, 0] = "January";
nazwyMiesiecy[0, 1] = "Luty";
nazwyMiesiecy[1, 1] = "February";
nazwyMiesiecy[0, 2] = "Marzec";
nazwyMiesiecy[1, 2] = "March";
nazwyMiesiecy[0, 3] = "Kwiecień";
nazwyMiesiecy[1, 3] = "April";
nazwyMiesiecy[0, 4] = "Maj";
nazwyMiesiecy[1, 4] = "May";
nazwyMiesiecy[0, 5] = "Czerwiec";
nazwyMiesiecy[1, 5] = "June";
nazwyMiesiecy[0, 6] = "Lipiec";
nazwyMiesiecy[1, 6] = "July";
nazwyMiesiecy[0, 7] = "Sierpień";
nazwyMiesiecy[1, 7] = "August";
nazwyMiesiecy[0, 8] = "Wrzesień";
nazwyMiesiecy[1, 8] = "September";
nazwyMiesiecy[0, 9] = "Październik";
nazwyMiesiecy[1, 9] = "Oktober";
nazwyMiesiecy[0, 10] = "Listopad";
nazwyMiesiecy[1, 10] = "November";
nazwyMiesiecy[0, 11] = "Grudzień";
nazwyMiesiecy[1, 11] = "December";

Zwróćcie uwagę, że indeksy w pionie (wierszy) także zaczynają się od wartości „0”. Żeby odwołać się do konkretnej wartości należy wskazać index wiersza i po przecinku index kolumny np. jeżeli chcemy odwołać się do wartości „November” wpiszemy poniższy kod.

Listing 4

// wyświetlenie na ekranie wartości "November" z tablicy
Console.WriteLine(nazwyMiesiecy[1,10]);

Dokładnie tak samo jak przy tablicach jednowymiarowych istnieje możliwość zapisu w jednym kroku deklaracji, inicjalizacji i przypisania wartości do pól tablicy wielowymiarowej. Poniższy kod prezentuje jeden ze sposobów przypisania wartości do tablicy dwu wymiarowej.

Listing 5

// deklaracja,inicjalizacja i przypisanie wartości do tablicy dwu wymiarowej w jednym kroku
            string[,] nazwyMiesiecy = new string[,]
                  {
                     {"Styczeń","January"},
                     {"Luty","February"},
                     {"Marzec","March"},
                     {"Kwiecień","April"},
                     {"Maj","May"},
                     {"Czeriec","June"},
                     {"Lipiec","July"},
                     {"Sierpień","August"},
                     {"Wrzesień","September"},
                     {"Październik","October"},
                     {"Listopad","November"},
                     {"Grudzień","December"}
                  };

Poniżej wizualizacja tablicy dwu wymiarowej z powyższego listingu.

kurs c# csharp podstawy programowania tablica wielowymiarowa
Wizualizacja tablicy dwu wymiarowej z powyższego listingu.

Zwróćcie uwagę, że teraz polskie nazwy miesięcy tworzą pierwszą kolumnę a angielskie nazwy tworzą drugą kolumnę. Odwołanie się np. do wartości „November” będzie wyglądało następująco.

Listing 6

// wyświetlenie na ekranie wartości "November" z tablicy
Console.WriteLine(nazwyMiesiecy1[10, 1]);

Przypisania takich samych wartości do tablicy dwu wymiarowej możemy zrealizować także w inny sposób.

Listing 7

// deklaracja, inicjalizacja i przypisanie wartości do tablicy dwu wymiarowej w jednym kroku
            string[,] nazwyMiesiecy = new string[,]
                 {
                      {"Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopac","Grudzień"},
                      {"January","February","March","April","May","June","July","August","September","October","November","December"}
                 };

Natomiast w sposobie drugim polskie nazwy tworzą pierwszy wiersz a nazwy angielskie są umieszczone w drugim wierszu (inaczej niż w przykładnie wcześniej). Wizualizacja tablicy dwu wymiarowej z listingu powyżej prezentuje się następująco.

kurs c# csharp podstawy programowania tablica wielowymiarowa

I gdybyśmy tutaj chcieli się odwołać także do wartości „November” musielibyśmy wpisać.

Listing 8

// wyświetlenie na ekranie wartości z tablicy
Console.WriteLine(nazwyMiesiecy[10, 1]);  

Cały gotowy kod (z Visual Studio) z tego odcinka możesz pobrać >>>tutaj<<<