V tomto článku sa dozvieme o foreach slučkách (alternatíva k for loop) a o tom, ako ich používať v poliach a kolekciách.
C # poskytuje ľahko použiteľnú a čitateľnejšiu alternatívu k cyklu for, cyklu foreach pri práci s poliami a kolekciami na iteráciu cez položky poľa / kolekcie. Slučka foreach iteruje každou položkou, a preto sa nazýva slučka foreach.
Pred prechodom vpred pomocou foreach loop navštívte:
- C # pre slučku
- Polia C #
- C # zbierky
Syntax slučky foreach
foreach (prvok v iterovateľnej položke) (// telo slučky foreach)
Tu môže byť iterovateľnou položkou pole alebo trieda zbierky.
Ako funguje foreach loop?
in
Kľúčové slovo použiť spoločne s slučky foreach slúži k iterovat cez iterable-bodu. Kľúčové slovo in vyberie položku z iterovateľnej položky pri každej iterácii a uloží ju do variabilného prvku.
Pri prvej iterácii je prvá položka iterovateľnej položky uložená v prvku. Pri druhej iterácii sa vyberie druhý prvok atď.
Počet vykonaní slučky foreach sa rovná počtu prvkov v poli alebo kolekcii.
Tu je príklad iterácie cez pole pomocou slučky for:
Príklad 1: Tlač poľa pomocou slučky for
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( char() myArray = ('H','e','l','l','o'); for(int i = 0; i < myArray.Length; i++) ( Console.WriteLine(myArray(i)); ) ) ) )
Rovnakú úlohu je možné vykonať pomocou slučky foreach.
Príklad 2: Tlač poľa pomocou slučky foreach
using System; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( char() myArray = ('H','e','l','l','o'); foreach(char ch in myArray) ( Console.WriteLine(ch); ) ) ) )
Keď spustíme obidva programy, výstup bude:
Ahoj
Vo vyššie uvedenom programe slučka foreach iteruje cez pole myArray. Pri prvej iterácii sa vyberie prvý prvok, tj. MyArray (0), ktorý sa uloží do ch.
Podobne pri poslednej iterácii sa vyberie posledný prvok, tj. MyArray (4). Vo vnútri tela slučky je vytlačená hodnota ch.
Keď sa pozrieme na oba programy, program používajúci slučku foreach je čitateľnejší a ľahšie pochopiteľný. Je to tak kvôli jeho jednoduchej a expresívnej syntaxi.
Preto je pri práci s poľami a kolekciami uprednostňovaná slučka foreach pred slučkou.
Príklad 3: Prechádzanie poľa pohlavia pomocou slučky foreach
Tento program počíta počet mužov a žien.
using System; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( char() gender = ('m','f','m','m','m','f','f','m','m','f'); int male = 0, female = 0; foreach (char g in gender) ( if (g == 'm') male++; else if (g =='f') female++; ) Console.WriteLine("Number of male = (0)", male); Console.WriteLine("Number of female = (0)", female); ) ) )
Keď spustíme program, výstup bude:
Počet mužov = 6 Počet žien = 4
Príklad 4: slučka foreach so zoznamom (kolekcia)
Tento program počíta súčet prvkov v zozname.
using System; using System.Collections.Generic; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( var numbers = new List() (5,-8,3,14,9,17,0,4); int sum = 0; foreach(int number in numbers) ( sum += number; ) Console.WriteLine("Sum = (0)", sum); ) ) )
Keď spustíme program, výstup bude:
Súčet = 44
V tomto programe sa slučka foreach používa na prechádzanie zbierkou. Prechádzanie zbierky je podobné ako prechádzanie po poli.
Prvý prvok kolekcie sa vyberie pri prvej iterácii, druhý prvok pri druhej iterácii a tak ďalej až po posledný prvok.