Typy generyczne w C#: Jak działa List i nawiasy kątowe?

Typy generyczne w C#: Jak działa List i nawiasy kątowe?

Wprowadzenie: czym jest List<T>?

Jeśli zaczynasz przygodę z C#, prędzej czy później trafisz na konstrukcję List<T>. Brzmi tajemniczo? Spokojnie — to nic strasznego. Lista generyczna w C# to jedna z najczęściej używanych kolekcji, a nawiasy kątowe < > to sposób, w jaki określamy typ elementów przechowywanych w liście.

👉 W tym artykule dowiesz się:

  • co oznacza zapis List<T> w C#,
  • jak działają typy generyczne,
  • dlaczego T w nawiasach kątowych jest tak ważne,
  • jakie są inne popularne kolekcje w .NET (tablica, lista, kolejka, stos, słownik).

Na końcu znajdziesz praktyczne wskazówki i dobre praktyki, które pomogą Ci pisać lepszy kod.


List<T> – podstawy

W C# List<T> to lista generyczna, czyli kolekcja, która może przechowywać elementy dowolnego typu.

👉 Przykład użycia:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Tworzymy listę liczb całkowitych
        List<int> liczby = new List<int> { 1, 2, 3, 4, 5 };

        // Tworzymy listę napisów
        List<string> imiona = new List<string> { "Ala", "Ola", "Krzysztof" };

        // Dodawanie nowego elementu
        liczby.Add(6);

        // Iteracja po liście
        foreach (var liczba in liczby)
        {
            Console.WriteLine(liczba);
        }
    }
}

✅ Jak widzisz, w nawiasach kątowych < > wskazujesz typ przechowywanych elementów. Dzięki temu kompilator wie, jakiego typu obiekty będą w liście.


Co oznacza T w List<T>?

Litera T to konwencja — skrót od słowa Type.

  • List<int> → lista liczb całkowitych
  • List<string> → lista napisów
  • List<User> → lista obiektów klasy User

A kiedy mówimy ogólnie (np. „lista dowolnego typu”), zapisujemy to jako List<T>.

👉 T to placeholder na typ, który wypełniasz, kiedy używasz kolekcji.


Kolekcje w C#: pełny obraz

Lista to tylko jeden z rodzajów kolekcji w C#. W praktyce będziesz korzystać także z:

  • Tablice (T[]) – statyczne, nie zmieniają rozmiaru.
  • List<T> – dynamiczna lista elementów.
  • Queue<T> – kolejka FIFO (First In, First Out).
  • Stack<T> – stos LIFO (Last In, First Out).
  • Dictionary<TKey, TValue> – słownik (mapowanie klucz-wartość).

📌 Zobacz też: Tworzenie klas w C#


Dlaczego warto używać kolekcji generycznych?

Typy generyczne dają potężne korzyści:

  • Bezpieczeństwo typów – kompilator pilnuje, że do listy trafią tylko elementy określonego typu.
  • Brak potrzeby rzutowania – oszczędność czasu i uniknięcie błędów.
  • Wydajność – działają szybciej niż starsze kolekcje oparte na object.
  • Czytelność kodu – od razu widać, co dana kolekcja przechowuje.

Checklist: jak pracować z List<T>?

✔️ Określ typ elementów w nawiasach < >.
✔️ Dodawaj elementy metodą .Add().
✔️ Usuwaj elementy metodą .Remove().
✔️ Iteruj po liście za pomocą foreach.
✔️ Korzystaj z metod pomocniczych (Find, Where, Sort).


Dobre praktyki pracy z kolekcjami

  • Zawsze wybieraj odpowiednią kolekcję – np. Queue<T> zamiast List<T>, gdy dane mają charakter kolejki.
  • Unikaj duplikowania danych – np. w Dictionary<TKey, TValue> klucze muszą być unikalne.
  • Nie przesadzaj z rozmiarem listy – używaj LINQ do filtrowania danych.
  • Monitoruj wydajność – duże kolekcje mogą obciążyć pamięć.

Podsumowanie

List<T> i typy generyczne w C# to fundament pracy z danymi. Nawiasy kątowe < > to nic innego jak sposób na powiedzenie kompilatorowi: „Hej, ta kolekcja ma przechowywać elementy typu X”.

👉 Chcesz głębiej zrozumieć typy generyczne w C# i poznać więcej praktycznych przykładów?
Sprawdź mój kurs: Typy generyczne w C# – kurs online

💬 Masz pytania? Zostaw komentarz!
📺 Subskrybuj mój kanał na YouTube, aby nie przegapić nowych tutoriali.

👉 Jeśli dopiero zaczynasz swoją przygodę z kolekcjami w .NET, koniecznie sprawdź kurs: Wprowadzenie do kolekcji w C#.

1 comment

  1. UX Twojego bloga jest optymalne i nowatorskie, ostylowanie CSS sprawia wrażenie świeżości fajnie też że zadbałeś o detale to “kuje” w oczy. Długo pracowałeś nad jego realizacją ?

Dodaj komentarz

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