Tablice w C#: Jak edytować element tablicy?

Tablice w C#: Jak edytować element tablicy?

Do tej pory pokazywaliśmy dwa podstawowe sposoby pracy z tablicami w C#:

  • wyliczanie wszystkich elementów (np. w pętli),
  • wyszukiwanie elementu według indeksu.

Teraz pora na edycję tablicy – czyli zmianę wartości wybranego elementu.


Przykład: poprawa błędu w tablicy miesięcy

Załóżmy, że mamy tablicę miesięcy, ale jeden z elementów został wpisany błędnie:

string[] monthsOfYear = { 
                "January", 
                "Febrry",  // Błąd w nazwie
                "March", 
                "April", 
                "May", 
                "June", 
                "July", 
                "August", 
                "September", 
                "October", 
                "November", 
                "December" 
            }; 

“Febrry”  – Nie Tak pisze się luty!
Zobaczmy, jak możemy to naprawić za pomocą kodu C#. Aby zmodyfikować istniejący element, musimy znać jego indeks. Ponieważ tablice są indeksowane od zera, drugi element ma indeks 1. Użyjemy tej wiedzy, aby przypisać nową, poprawną wartość.

// Poprawiamy wartość elementu o indeksie 1
monthsOfYear[1] = „February”;   

To wszystko! Wartość została podmieniona. Aby zweryfikować, czy zmiana została poprawnie zapisana, możemy wyświetlić całą zawartość tablicy za pomocą pętli foreach.

// Weryfikacja
Console.WriteLine("Zawartość tablicy po poprawieniu błędu:");
foreach (var month in monthsOfYear)
{
    Console.WriteLine(month);
}

Dlaczego indeks 1?

  • W C# tablice są indeksowane od zera.
  • Pierwszy element ma indeks 0"January".
  • Drugi element ma indeks 1"February".

Dzięki temu możemy zarówno odczytywać elementy tablicy, jak i nadpisywać ich wartości za pomocą operatora indeksu ([]).


Sprawdzenie wyniku

Po poprawce możemy wypisać całą tablicę w konsoli:

foreach (var month in monthsOfYear)
{       
     Console.WriteLine(month);   
}

W ten sposób zmodyfikowaliśmy element w tablicy.

Kluczowe informacje do zapamiętania

  • Operator indeksu [] w tablicach służy zarówno do odczytu, jak i zapisu.
  • Tablice w C# są indeksowane od zera.
  • Nadpisanie elementu zmienia dane w tej samej tablicy – nie tworzymy nowej kolekcji.
  • Tablice mają stałą długość – możemy zmieniać wartości istniejących elementów, ale nie możemy dodać nowego bez stworzenia nowej tablicy.

Najważniejsze ograniczenie tablic: Stały rozmiar ⚠️

Teraz dochodzimy do kluczowej kwestii. Zmodyfikowaliśmy istniejący element, ale co, jeśli chcielibyśmy dodać trzynasty miesiąc albo usunąć jeden z istniejących?

To niemożliwe. Tablice w C# mają stały, niezmienny rozmiar.

Oznacza to, że po utworzeniu tablicy (np. o rozmiarze 12), nie można jej w żaden sposób rozszerzyć ani skurczyć. Operacje takie jak Add (dodaj) czy Remove (usuń) nie istnieją dla tablic.

Dlaczego tak jest?

Gdy tworzysz tablicę, system operacyjny rezerwuje dla niej w pamięci jeden, ciągły blok o określonej wielkości. Taka struktura sprawia, że dostęp do dowolnego elementu przez indeks jest niezwykle szybki. Zmiana rozmiaru wymagałaby znalezienia nowego, większego bloku pamięci i przekopiowania do niego wszystkich istniejących danych, co jest operacją kosztowną i zaprzecza idei prostej i wydajnej struktury, jaką ma być tablica.


Co jeśli potrzebuję dynamicznej kolekcji? Użyj List<T>!

W prawdziwym świecie programowania bardzo często potrzebujemy kolekcji, których rozmiar może się zmieniać. Do tego celu w C# służy obiekt List<T>.

Lista jest bardziej elastyczną strukturą danych, która pozwala na swobodne dodawanie i usuwanie elementów.

Krótkie porównanie:

  • Tablica (string[]): Stały rozmiar, bardzo szybki dostęp do elementów. Idealna, gdy znasz dokładną liczbę elementów z góry.
  • Lista (List<string>): Dynamiczny rozmiar, łatwe dodawanie i usuwanie. Idealna, gdy liczba elementów będzie się zmieniać w trakcie działania programu.

Podsumowanie

  • Modyfikacja jest możliwa: Możesz zmienić wartość istniejącego elementu, używając składni nazwaTablicy[indeks] = nowaWartosc;.
  • Rozmiar jest stały: Nie możesz dodać nowego elementu ani usunąć istniejącego, aby zmienić rozmiar tablicy.
  • Szybkość vs. Elastyczność: Tablice są szybkie, ale nieelastyczne pod względem rozmiaru.
  • Potrzebujesz elastyczności?: Użyj List<T>, która została stworzona do obsługi dynamicznie zmieniających się zbiorów danych.
  • Zobaczyliśmy, jak działa operator indeksu po lewej stronie przypisania.
  • Wypisaliśmy tablicę w pętli, aby potwierdzić działanie kodu.

👉 Chcesz dowiedzieć się więcej o kolekcjach w C# (tablice, listy, kolejki, stosy, słowniki)?
Sprawdź praktyczny kurs: https://dev-hobby.pl/kursy/c-wprowadzenie-do-kolekcji/

Zapamiętaj.

Dostęp do elementów tablicy jest możliwy dzięki operatorowi indeksu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *