🔥 Zapisy zamknięte, ale możesz pobrać Roadmapę .NET i dołączyć do listy oczekujących — Pobierz i dołącz do Listy VIP →

Tablice a inne kolekcje w C# — kiedy które

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.

Schemat petli foreach 3

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).

Chcesz zobaczyć konkretne liczby wydajnościowe zamiast ogólnych zasad? Zobacz Array vs List w C# — pamięć i wydajność albo Array vs List — API design i decyzje.

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

👨‍💻
Mariusz Jurczenko
Senior .NET Developer · 10+ lat doświadczenia komercyjnego

Programista .NET z doświadczeniem komercyjnym w firmach takich jak NFZ, Kamsoft, Diagnostyka, Hermes Reply Polska czy Etisoft Smart Solutions. Twórca kursów, z których skorzystało już ponad 11 000 osób w Strefie Kursów i ponad 1 000 kursantów na dev-hobby.pl.

Specjalizacja: Clean Code, Clean Architecture i uczenie programowania tak, żeby dało się je naprawdę zrozumieć — nie wykuć.

🚀 Co dalej?

Zobacz to w praktyce na wideo i pobierz darmową roadmapę, żeby ułożyć naukę w spójną ścieżkę do pierwszej pracy.

Dodaj komentarz

czytanie to początek

Zamień wiedzę w umiejętności

Pobierz darmową Roadmapę .NET i ułóż takie tematy jak ten w spójną ścieżkę do pierwszej pracy.

Pobieram roadmapę →