Tablice, listy, kolekcje oraz funkcje i metody – solidne fundamenty czystego kodu w C#

devkot.pl 2 dni temu

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ć, iż 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 zwykle 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żeli 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, iż 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

  1. Stwórz tablicę 5 liczb całkowitych i wypisz je w konsoli.

  2. Zapisz imiona 3 osób w liście, a następnie dodaj jeszcze dwa imiona.

  3. Napisz metodę ObliczPoleKwadratu, która przyjmuje długość boku i zwraca pole.

  4. 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 czy Queue 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!

Warto zobaczyć

  • Zostań kotem IT
  • Tablice, listy, kolekcje oraz funkcje i metody – solidne fundamenty czystego kodu w C# pochodzi z serwisu Devkot.pl.
Idź do oryginalnego materiału