Blog Dla Młodszych Programistów C#/.NET

środa, 1 stycznia 2025

Wprowadzenie


Dzisiaj zagłębimy się w temat tablic i list w C# - dwóch fundamentalnych struktur danych, które są niezbędne w arsenale każdego programisty. Nauczymy się, jak efektywnie przechowywać, manipulować i zarządzać zbiorami danych, co jest kluczową umiejętnością w tworzeniu skalowalnych i wydajnych aplikacji.

Tablice i Listy w C#: Efektywne Zarządzanie Kolekcjami Danych

Tablice w C#


Tablice to najprostsza forma kolekcji w C#. Pozwalają na przechowywanie wielu elementów tego samego typu w jednej zmiennej.

Deklaracja i inicjalizacja tablicy

/* Deklaracja tablicy liczb całkowitych o rozmiarze 5 */
int[] liczby = new int[5];

/* Inicjalizacja tablicy z wartościami */
string[] dni = { "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek" };

Dostęp do elementów tablicy

int[] oceny = { 4, 5, 3, 5, 4 };
Console.WriteLine($"Druga ocena: {oceny[1]}"); // Indeksowanie zaczyna się od 0

Iteracja po tablicy

string[] owoce = { "jabłko", "banan", "pomarańcza", "gruszka" };

for (int i = 0; i < owoce.Length; i++)
{
Console.WriteLine(owoce[i]);
}

/* Lub używając foreach */
foreach (string owoc in owoce)
{
Console.WriteLine(owoc);
}


Listy w C#


Listy są bardziej elastyczne niż tablice. Mogą dynamicznie zmieniać swój rozmiar i oferują wiele przydatnych metod do manipulacji danymi.

Tworzenie i dodawanie elementów do listy

List<string> zakupy = new List<string>();
zakupy.Add("mleko");
zakupy.Add("chleb");
zakupy.Add("jajka");

/* Lub inicjalizacja z wartościami */
List<int> liczby = new List<int> { 1, 2, 3, 4, 5 };

Usuwanie elementów z listy

List<string> zespoly = new List<string> { "Beatles", "Queen", "ABBA", "Metallica" };
zespoly.Remove("ABBA");
zespoly.RemoveAt(0); // Usuwa pierwszy element

Wyszukiwanie w liście

List<string> imiona = new List<string> { "Anna", "Bartek", "Celina", "Daniel" };
bool czyIstnieje = imiona.Contains("Celina");
int indeks = imiona.IndexOf("Bartek");


Praktyczne przykłady


Przykład 1: Obliczanie średniej ocen

List<double> oceny = new List<double> { 4.5, 3.5, 5.0, 4.0, 3.0 };
double suma = 0;

foreach (double ocena in oceny)
{
suma += ocena;
}

double srednia = suma / oceny.Count;
Console.WriteLine($"Średnia ocen: {srednia:F2}");

Przykład 2: Filtrowanie listy

List<int> liczby = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> parzyste = liczby.FindAll(x => x % 2 == 0);

Console.WriteLine("Liczby parzyste:");
foreach (int liczba in parzyste)
{
Console.Write($"{liczba} ");
}

Przykład 3: Sortowanie tablicy

string[] nazwiska = { "Kowalski", "Nowak", "Adamczyk", "Zieliński" };
Array.Sort(nazwiska);

Console.WriteLine("Posortowane nazwiska:");
foreach (string nazwisko in nazwiska)
{
Console.WriteLine(nazwisko);
}


Zaawansowane techniki


LINQ z listami

LINQ (Language Integrated Query) to potężne narzędzie do pracy z kolekcjami:

List<string> miasta = new List<string> { "Warszawa", "Kraków", "Łódź", "Wrocław", "Poznań" };

var dlugieNazwy = miasta.Where(m => m.Length > 5)
.OrderBy(m => m)
.ToList();

Console.WriteLine("Miasta z nazwą dłuższą niż 5 liter:");
foreach (var miasto in dlugieNazwy)
{
Console.WriteLine(miasto);
}

Wielowymiarowe tablice

int[,] plansza = new int[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(plansza[i, j] + " ");
}
Console.WriteLine();
}


Podsumowanie


Tablice i listy są fundamentalnymi strukturami danych w C#, które pozwalają na efektywne zarządzanie kolekcjami. Wybór między nimi zależy od konkretnego scenariusza - tablice są szybsze i mają stały rozmiar, podczas gdy listy oferują większą elastyczność i wygodę użycia. Jeśli chcesz pogłębić swoją wiedzę na temat struktur danych i innych zaawansowanych koncepcji programowania w C#, zachęcam do sprawdzenia mojego szkolenia online "Zostań Programistą .NET". W szkoleniu tym szczegółowo omawiamy nie tylko tablice i listy, ale także wiele innych ważnych aspektów programowania, które pomogą Ci stać się skutecznym deweloperem .NET. Mam nadzieję, że ten artykuł był dla Ciebie pomocny i inspirujący. Jeśli masz jakiekolwiek pytania lub chcesz podzielić się swoimi doświadczeniami z używaniem tablic i list w C#, nie wahaj się zostawić komentarza poniżej. Powodzenia w Twojej przygodzie z programowaniem!

Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
CTO & Founder - FindSolution.pl
Programista C#/.NET. Specjalizuje się w Blazor, ASP.NET Core, ASP.NET MVC, ASP.NET Web API, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Dodaj komentarz

Wyszukiwarka

© Copyright 2025 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Regulamin. Polityka prywatności. Design by Kazimierz Szpin