Tablice a inne kolekcje.

Tablice a inne kolekcje.

Tablice to świetny punkt startowy do nauki pracy z kolekcjami w C#. Co ciekawe, wiele zasad, które poznałeś przy tablicach, działa również w przypadku innych kolekcji, takich jak lista (List<T>), słownik (Dictionary<TKey, TValue>), kolejka czy stos. Jednak diabeł tkwi w szczegółach.

Dzięki temu nie musisz uczyć się wszystkiego od zera – znajoma składnia i mechanizmy pojawiają się w wielu miejscach.


Co łączy tablice i inne kolekcje?

1. Indeksowanie od zera

  • Tablice: monthsOfYear[0] → pierwszy element.
  • Lista: numbers[0] → pierwszy element listy.
  • W obu przypadkach indeksy zaczynają się od 0.

2. Operator indeksu []

W tablicach:

string january = monthsOfYear[0];

W listach:

var firstNumber = numbers[0];

Operator działa identycznie – wskazuje element po indeksie.

3. Iteracja za pomocą foreach

Większość typów kolekcji w C# ma jedną wspólną, potężną cechę: można po nich iterować za pomocą pętli foreach. Dzieje się tak, ponieważ kolekcje te implementują specjalny interfejs (IEnumerable), który gwarantuje możliwość sekwencyjnego przeglądania zawartości. To faktycznie duże ułatwienie!

Tablica

foreach (var month in monthsOfYear)
    Console.WriteLine(month);

Lista

foreach (var number in numbers)
    Console.WriteLine(number);

Mechanizm ten sam – kolekcje można przechodzić pętlą bez znajomości ich rozmiaru.


Różnice między tablicami a innymi kolekcjami

  • Tablica (array) ma stałą długość – po utworzeniu nie można jej zmienić.
  • Lista (List<T>) jest dynamiczna – można dodawać i usuwać elementy.
  • Słownik (Dictionary<TKey, TValue>) pozwala odwoływać się do wartości nie przez indeks, ale przez klucz:
var capitals = new Dictionary<string, string>
{
    ["Poland"] = "Warsaw",
    ["Germany"] = "Berlin"
};
Console.WriteLine(capitals["Poland"]); // Warsaw
  • Kolejka (Queue<T>) i stos (Stack<T>) działają według innych reguł (FIFO, LIFO), ale także są kolekcjami.

Dlaczego to ważne?

Zrozumienie tablic to fundament, dzięki któremu łatwiej opanujesz inne kolekcje. Składnia ([], foreach, indeksowanie) jest spójna, więc poznając jedną strukturę, uczysz się wielu.

Kiedy czego używać? Praktyczna ściągawka

Wybór odpowiedniej kolekcji to jedna z najważniejszych decyzji, jakie podejmujesz podczas kodowania.

  • Użyj Tablicy (string[]) gdy:
    • ✅ Znasz dokładną liczbę elementów z góry (np. dni tygodnia, miesiące).
    • ✅ Zależy Ci na maksymalnej wydajności i minimalnym zużyciu pamięci.
    • ❌ Nie planujesz dodawać ani usuwać elementów.
  • Użyj Listy (List<string>) gdy:
    • ✅ Nie wiesz, ile elementów będziesz przechowywać.
    • ✅ Potrzebujesz swobodnie dodawać, usuwać i sortować elementy.
    • ✅ Jest to najczęstszy i najbardziej uniwersalny wybór do ogólnych zastosowań.
  • Użyj Słownika (Dictionary<string, User>) gdy:
    • ✅ Potrzebujesz błyskawicznie wyszukiwać elementy na podstawie unikalnego identyfikatora (jak numer PESEL, login użytkownika, kod produktu).
    • ✅ Każdy element danych można opisać unikalnym kluczem.
    • ❌ Kolejność elementów nie ma znaczenia.

A co z Kolejką i Stosem?

Warto wiedzieć, że istnieją też inne wyspecjalizowane kolekcje, takie jak Queue<T> (kolejka) i Stack<T> (stos), które w ogóle nie używają indeksera []!
Dostęp do danych odbywa się w nich za pomocą dedykowanych metod (Enqueue/Dequeue dla kolejki, Push/Pop dla stosu).

Podsumowanie

  • Wiele zasad znanych z tablic działa także w listach i słownikach.
  • Operator [] służy zarówno do odczytu, jak i zapisu elementów.
  • Wszystkie kolekcje w C# można wyliczać przy pomocy foreach.
  • Tablice są stałe, listy dynamiczne, a słowniki opierają się na kluczach.

Opanowanie C# to nie tylko znajomość składni, ale przede wszystkim umiejętność doboru odpowiednich narzędzi do rozwiązywanego problemu. Traktuj kolekcje jak zestaw specjalistycznych narzędzi: tablica to precyzyjny śrubokręt, lista to uniwersalny klucz francuski, a słownik to super-szybka wyszukiwarka.

Wiedza o ich różnicach pozwoli Ci pisać kod, który jest nie tylko poprawny, ale też wydajny i czytelny.

👉 Jeśli chcesz poznać wszystkie kolekcje w C# (tablice, listy, kolejki, stosy, słowniki) i dowiedzieć się, kiedy której używać, sprawdź kurs:
https://dev-hobby.pl/kursy/c-wprowadzenie-do-kolekcji/

Możesz użyć pętli foreach, aby wyliczyć wszystkie elementy w kolekcji, zwykle używasz składni nawiasu kwadratowego do identyfikowania elementów w kolekcji, lub gdy chcesz odczytać, czy zapisać element kolekcji, ale kiedy używasz składni nawiasu kwadratowego, musisz używać indeksowania od zera

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *