0Pricing
C# Academy · Lekcja

Iterowanie po kolekcjach

Listy, tablice i słowniki.

Iterowanie po kolekcjach to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.

Kolekcje, po których można iterować

Wiele typów C# można przetwarzać za pomocą pętli foreach: tablice, List<T>, słowniki i inne kolekcje.

Wszystkie obsługują iterację, ponieważ implementują wspólny interfejs. Nie trzeba znać szczegółów, aby z nich korzystać.

Iterowanie po tablicy

Tablice mają stały rozmiar określony podczas ich tworzenia.

Po tablicy dowolnego typu elementów można iterować w ten sam sposób.

double[] prices = { 9.99, 4.50, 19.00 };
foreach (var p in prices)
{
    Console.WriteLine(p);
}

Iterowanie po liście

Obiekt List<T> może zwiększać i zmniejszać swój rozmiar. Jest to jedna z najczęściej używanych kolekcji.

Iterowanie po nim wygląda dokładnie tak samo jak iterowanie po tablicy.

var fruits = new List<string> { "apple", "pear" };
foreach (var f in fruits)
{
    Console.WriteLine(f);
}

Zliczanie podczas iteracji

Czasami potrzebny jest ręczny licznik wewnątrz pętli foreach.

Należy zadeklarować zmienną przed pętlą i zwiększać ją podczas każdego przebiegu.

var items = new List<string> { "a", "b", "c" };
int i = 0;
foreach (var item in items)
{
    Console.WriteLine(i + ": " + item);
    i++;
}

Iterowanie po słowniku

Obiekt Dictionary<K,V> przechowuje pary klucz–wartość.

Iterowanie po nim udostępnia obiekt KeyValuePair zawierający właściwości .Key i .Value.

var ages = new Dictionary<string, int>
{
    ["Ada"] = 36,
    ["Linus"] = 54
};
foreach (var pair in ages)
{
    Console.WriteLine(pair.Key + "=" + pair.Value);
}

Klucze i wartości słownika

Jeśli potrzebne są tylko klucze albo tylko wartości, należy użyć właściwości .Keys lub .Values.

Każda z nich jest kolekcją, po której można iterować.

foreach (var name in ages.Keys)
{
    Console.WriteLine(name);
}

Iterowanie po HashSet

Obiekt HashSet<T> przechowuje unikatowe wartości. Duplikaty są ignorowane.

Można używać na nim pętli foreach, ale kolejność elementów nie jest gwarantowana.

var tags = new HashSet<string> { "c#", "dotnet", "c#" };
foreach (var t in tags)
{
    Console.WriteLine(t);
}

Zagnieżdżona iteracja

Jedną pętlę foreach można umieścić wewnątrz drugiej, aby iterować po kolekcji kolekcji.

Ten kod przechodzi przez każdy wiersz, a następnie przez każdą wartość w tym wierszu.

int[][] grid = { new[] {1, 2}, new[] {3, 4} };
foreach (var row in grid)
{
    foreach (var v in row)
    {
        Console.WriteLine(v);
    }
}

Budowanie wyniku

Typowym wzorcem jest iterowanie po jednej kolekcji i dodawanie przekształconych elementów do innej.

Tutaj podwajamy każdą liczbę i zapisujemy wynik na nowej liście.

var nums = new List<int> { 1, 2, 3 };
var doubled = new List<int>();
foreach (var n in nums)
{
    doubled.Add(n * 2);
}
Console.WriteLine(string.Join(",", doubled));

Puste kolekcje

Jeśli kolekcja nie zawiera elementów, treść pętli foreach po prostu ani razu się nie wykonuje.

Nie występuje żaden błąd. Dzięki temu foreach jest bezpieczna nawet wtedy, gdy lista może być pusta.

var empty = new List<int>();
foreach (var x in empty)
{
    Console.WriteLine("never printed");
}
Console.WriteLine("done");

IEnumerable: wspólny mianownik

Każda kolekcja, po której można iterować, implementuje IEnumerable<T>.

To kontrakt, na którym opiera się foreach. Dzięki niemu ta sama składnia pętli działa dla tablic, list, zbiorów i słowników.

Szybkie sprawdzenie

Proszę sprawdzić swoją wiedzę na temat iterowania po kolekcjach.

Podsumowanie

Zobaczyli Państwo, jak foreach działa z tablicami, listami, słownikami i zbiorami.

Wszystkie te kolekcje implementują kontrakt IEnumerable<T>, dlatego jeden styl pętli pasuje do nich wszystkich. Puste kolekcje są bezpieczne, a słowniki zwracają pary klucz-wartość.

Często zadawane pytania

Czy lekcja „Iterowanie po kolekcjach” jest bezpłatna?

Tak — pełny tekst „Iterowanie po kolekcjach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Iterowanie po kolekcjach”?

Listy, tablice i słowniki. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Iterowanie po kolekcjach”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Pętla foreach
  2. Iterowanie po kolekcjach
  3. break i continue
  4. Typowe błędy podczas iterowania
← Powrót do C# Academy