Wstęp
Jeśli zaczynasz swoją przygodę z programowaniem w C#, zrozumienie podstawowych struktur danych oraz umiejętność organizowania kodu w funkcje i metody jest kluczowe. W tym artykule pokażę Ci, czym różnią się tablice, listy i kolekcje, a także wytłumaczę, jak tworzyć funkcje i metody, które pomogą Ci pisać czysty, czytelny i łatwy do rozbudowy kod.
1. Tablice, listy i kolekcje – jak przechowywać dane?
W programowaniu bardzo często musimy przechowywać więcej niż jedną wartość. Zamiast tworzyć wiele zmiennych, możemy używać struktur danych takich jak tablice, listy czy kolekcje. Przyjrzyjmy się każdej z nich.
Tablice (Array
)
Tablica to uporządkowany zbiór elementów o tym samym typie. Liczba elementów w tablicy jest ustalana przy jej tworzeniu i nie może się później zmienić.
int[] liczby = new int[3];
liczby[0] = 10;
liczby[1] = 20;
liczby[2] = 30;
Można też od razu przypisać wartości:
int[] liczby = new int[] { 10, 20, 30 };
Zalety: szybki dostęp do elementów po indeksie.
Wady: stała długość – nie można dodać ani usunąć elementów po stworzeniu tablicy.
Listy (List<T>
)
Listy są bardziej elastyczne niż tablice. Możemy dowolnie dodawać i usuwać elementy.
List imiona = new List();
imiona.Add("Ania");
imiona.Add("Bartek");
Możemy też zainicjalizować listę z gotowymi wartościami:
List imiona = new List { "Ania", "Bartek" };
Zalety: dynamiczna długość, wiele przydatnych metod (np. Add
, Remove
, Contains
).
Wady: nieco wolniejsze niż tablice przy bardzo dużych ilościach danych.
Uwaga: List<T>
to przykład typu generycznego. Litera T
oznacza typ elementów, które lista ma przechowywać – np. List<int>
dla liczb lub List<string>
dla tekstów. Dzięki temu kolekcje są bardziej uniwersalne i bezpieczne typowo.
Inne kolekcje
C# oferuje również bardziej zaawansowane struktury:
Dictionary<TKey, TValue>
– słownik pozwalający przechowywać pary klucz-wartość.
Dictionary wiek = new Dictionary();
wiek["Ania"] = 25;
wiek["Bartek"] = 30;
HashSet<T>
– zbiór unikalnych elementów.Queue<T>
– kolejka (FIFO – pierwszy wszedł, pierwszy wyszedł).Stack<T>
– stos (LIFO – ostatni wszedł, pierwszy wyszedł).
2. Funkcje i metody – jak organizować kod?
Program, który składa się z jednego długiego bloku kodu, jest trudny do zrozumienia i modyfikacji. Dlatego kod dzielimy na mniejsze fragmenty – funkcje (lub metody).
Co to jest metoda?
Metoda (funkcja w klasie) to fragment kodu, który wykonuje konkretne zadanie. Dzięki niej możemy uniknąć powtarzania tego samego kodu i sprawić, że nasz program będzie bardziej uporządkowany.
Różnica między funkcją a metodą: w języku C# funkcje są zawsze częścią klasy, dlatego zazwyczaj mówimy o metodach. W innych językach (np. Pythonie) funkcje mogą istnieć samodzielnie, ale w C# wszystko jest częścią klasy.
int Dodaj(int a, int b)
{
return a + b;
}
Aby wywołać metodę:
int wynik = Dodaj(5, 3); // wynik = 8
Dobre praktyki
Nazywaj metody jasno i zrozumiale – np.
PoliczSume
,WyswietlUzytkownikow
.Jedna metoda = jedno zadanie – nie łącz wielu operacji w jednej funkcji.
Unikaj powtarzania kodu – jeśli robisz coś więcej niż raz, zrób z tego metodę.
Ogranicz liczbę parametrów – im mniej, tym lepiej.
Przykład refaktoryzacji
Kod bez metod:
List uzytkownicy = new List { "Ania", "Bartek" };
foreach (var u in uzytkownicy)
{
Console.WriteLine(u);
}
Kod z metodą:
void WyswietlUzytkownikow(List lista)
{
foreach (var u in lista)
{
Console.WriteLine(u);
}
}
// wywołanie
List uzytkownicy = new List { "Ania", "Bartek" };
WyswietlUzytkownikow(uzytkownicy);
3. Jak to połączyć w praktyce?
Wyobraź sobie, że tworzysz prostą aplikację do obsługi zamówień. Możesz przechowywać je w liście, a operacje takie jak dodanie zamówienia, wyświetlenie listy czy usunięcie – wydzielić do osobnych metod:
List zamowienia = new List();
void DodajZamowienie(string produkt)
{
zamowienia.Add(produkt);
}
void WyswietlZamowienia()
{
foreach (var z in zamowienia)
{
Console.WriteLine(z);
}
}
Ćwiczenia dla Ciebie
Stwórz tablicę 5 liczb całkowitych i wypisz je w konsoli.
Zapisz imiona 3 osób w liście, a następnie dodaj jeszcze dwa imiona.
Napisz metodę
ObliczPoleKwadratu
, która przyjmuje długość boku i zwraca pole.Utwórz słownik, który będzie przechowywał imię i wiek kilku osób, a potem wypisz ich dane.
Podsumowanie
Tablice są szybkie, ale mają stałą długość.
Listy są elastyczne i łatwiejsze w użyciu.
Kolekcje takie jak
Dictionary
czyQueue
dają dodatkowe możliwości.Funkcje i metody pozwalają dzielić kod na logiczne fragmenty, co zwiększa jego czytelność i ułatwia utrzymanie.
Nawet proste programy warto pisać z myślą o przejrzystości. Dzięki temu łatwiej będzie Ci je rozwijać, testować i udoskonalać.
Co dalej?
Jeśli dobrze opanowałeś tablice, listy, kolekcje oraz metody, kolejnym krokiem będzie poznanie klas i obiektów oraz podstaw programowania obiektowego (OOP). To pozwoli Ci tworzyć bardziej rozbudowane i profesjonalne aplikacje.
Warto też dowiedzieć się, czym są przestrzenie nazw (namespace
) oraz jak organizować kod w osobnych plikach i folderach. Porządek w projekcie to coś, co docenisz przy każdym większym projekcie!
Powiązane posty

Tablice, listy, kolekcje oraz funkcje i metody – solidne fundamenty czystego kodu w C#
Wstęp Jeśli zaczynasz swoją przygodę z programowaniem w C#, zrozumienie podstawowych struktur danych oraz umiejętność organizowania kodu w funkcje i

Wzorce projektowe w C# i .NET – praktyczny przewodnik dla programistów
Cześć, developerzy, dzisiaj przygotowałem dla Was obszerny przewodnik opisujący wzorce projektowe w C# i .NET. Znajdziesz tu szczegółowe opisy popularnych