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 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!