Jason. Cała informatyka w jednym miejscu!

Gotowi na poznanie ostatniego typu tablicy w "CSharpie" :D? To tablica nieregularna w języku C# stanie się teraz tematem głównym niniejszego artykułu! Zobaczycie co się w rzeczywistości za tym kryje i jak należy się z tym obchodzić!

TABLICA NIEREGULARNA W JĘZYKU C# TO PRAWIE JAK TABLICA ZAGNIEŻDŻONA!

OK, link kliknięty to teraz mogę wejść w szczegóły :P. Tablica nieregularna to w gruncie rzeczy żaden odrębny wytwór, tylko tablica zagnieżdżona z nieregularną liczbą komórek w każdej z podtablic. Dlatego poproszę Was o zapoznanie się z poprzednim rozdziałem wątku o tablicach, żeby wiedzieć jak podejść do tych.

Wiecie już, że tablica zagnieżdżona to tablica tablic:

int[][] numbers = new int[A][];

A inicjalizacja wymaga takiej samej pętli "for":

for (int i = 0; i < numbers.Length; ++i)
{
	numbers[i] = new int[B];
}

W tym przypadku, udział brała ta sama liczba komórek. Ponieważ tablica nieregularna w języku C# charakteryzuje się...nieregularnością ;), nie może już postąpić w ten sposób, gdyż będzie to tablica o regularnym kształcie. Co wtedy?

INICJALIZACJA TABLICY NIEREGULARNEJ

Macie dwie drogi do wyboru. Albo zamieniacie pętlę "for" na garść osobnych przypisań tablic do każdego elementu, albo definiujecie sobie tablicę jednowymiarową określającą rozmiar dla każdej z podtablic, a w samej pętli dokonujecie niewielkiej poprawki:

int[] sizes = {8, 7, 3, 5};
int[][] numbers = new int[sizes.Length][];

for (int i = 0; i < numbers.Length; ++i)
{
	numbers[i] = new int[sizes[i]];
}

Obsługa wygląda tak samo, jak przy tablicy "regularnej". Zagnieżdżona pętla "for" i uzależnianie liczby przebiegów tej wewnętrznej od rozmiaru każdej podtablicy (właściwość "Length"). Nic się nie rozleci :D!

JAKIEŚ KONKRETNE ZASTOSOWANIE?

Przykładem może być przechowanie poziomów kilku światów czy motywów gry, a każdy z nich posiada niestandardową liczbę. Gdyby się zdarzyło tak, że każdy ze światów dysponuje nieregularną liczbą poziomów, wtedy tablica nieregularna w języku C# może być najlepszym wyjściem, gdyż rozwiązuje to cały problem zachowując przy tym szybkie przedostawanie się do komórek.

Tablica nieregularna w języku C#

Tablica nieregularna oznacza dowolny miks samych rozmiarów podtablic, które mają przechowywać dane. Poza własnoręcznym zdefiniowaniem wielkości każdej z nich, reszta obsługi jest taka sama jak przy tablicy zagnieżdżonej.


Przy odpowiednim treningu nie będzie to stanowiło dla Was żadnego problemu. Ani rozumienie, ani wykorzystywanie w praktyce. Koniec wątku tablic :D.

PODOBNE ARTYKUŁY