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łkowitychList<string>
→ lista napisówList<User>
→ lista obiektów klasyUser
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>
zamiastList<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#.
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ą ?