Bucla foreach este mult mai simplă decât bucla for, dar este de asemenea mai dificilă pentru cititorii acestui blog, deoarece se bazează pe concepte noi, pe care nu le-am învățat încă. Din acest motiv, vă voi spune pur și simplu că o buclă foreach a fost proiectată pentru a itera prin toate elementele unui array, liste sau orice altă colecție de elemente care implementează IEnumerable (o interfață despre care vom învăța mai târziu). Trece prin toate elementele din colecție, chiar și atunci când colecția nu este indexată. Acesta este un concept oarecum nou pentru familia de limbaje C, C++, C#, dar programatorii care provin din VB sau PHP ar trebui să fie bine familiarizați cu el.
Desigur, vom discuta array-uri și liste în detaliu atunci când vom ajunge la momentul potrivit. Pentru moment, vă puteți imagina un array ca fiind o secvență ordonată de elemente de același tip (numere întregi, siruri de caractere, etc).
Acesta este modul în care arată în general o buclă foreach:
|
1
2
|
foreach (tip variabila in colectie)
instructiuni;
|
Nu foarte descriptiv, nu-i așa? Deși, trebuie să recunoașteți, este mult mai simplă decât bucla for. Ori de câte ori trebuie să treceți prin fiecare element dintr-o colecție, este de preferat să folosiți bucla foreach.
Să luăm un exemplu real de utilizare a acesteia:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
using
System;
namespace
BunaLume
{
class
Program
{
static void Main(string[] args)
{
int[] cifre = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
string[] numePersoane = { "Ion", "Maria", "George" };
foreach (int cifra in cifre)
Console.WriteLine(cifra);
foreach (string numePersoana in numePersoane)
Console.WriteLine(numePersoana);
Console.ReadLine();
}
}
}
|
Și aici este rezultatul:
În exemplul de mai sus am creat două array-uri cifre și numePersoane, unul de tip int, celălalt de tip string. Apoi, le-am inițializat cu o colecție de numere întregi și șiruri. În cele din urmă, am folosit bucla foreach pentru a trece prin toate elementele acestor array-uri și a afișa elementele la consolă.
Conceptele explicate în această lecție sunt prezentate și vizual, ca parte a următorului videoclip: