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.

