C# foreach ciklust csak int típusú tömböknél érdemes használni?
foreach (típus változó in tömb)
utasítás
Ugye a típus az elméletileg bármilyen típus lehet, viszont ha én hivatkozni akarok a ciklusban a tömb egyik elemére:
tömb[változó]=valami;
akkor azt csak int típusú változóval tehetem meg, viszont a foreach ciklus megköveteli, hogy a változó típusa a tömb típusa legyen.
Szóval más helyzetben foreach ciklus nem is használható?
Ha foreach-et használsz, akkor a tömb indexelését ő végzi el, nem te. És bármilyen típusú tömbre/kollekcióra érdemes használni, HA nem használod fel sehol az indexet.
foreach(T elem in tömb) {
// dolgozol elem-mel
}
Ekvivalens ezzel:
for(int i = 0; i < tömb.length; i++) {
T elem = tömb[i];
// dolgozol elem-mel
}
Nem éppen erről van szó. A foreach ciklusnak két dolog kell:
1) Valami olyan dolog, aminek az elemeit fel tudjuk sorolni. Fel tudjuk sorolni egy tömb elemeit, fel tudjuk sorolni egy listának az elemeit, stb. Ha precíz szakmai definícióra vágysz, akkor a C# foreach ciklusa egy IEnumerable<T> típusú kifejezést vesz alapul.
2) Kell egy változó, ahol az éppen kiválasztott elemet fogja tárolni.
Ez azért van, mert a foreach ciklus azt csinálja, hogy sorra veszi az IEnumerable<T> elemeit, és az éppen kiválasztott elem értékét (ha T value-type) vagy a referenciáját (ha T reference-type) átmásolja az általad megadott változóba.
Szintaktikailag így néz ki:
foreach (T azonosító in IEnumerable<T>) utasítás;
foreach (T azonosító in IEnumerable<T>) {}
foreach (T azonosító in IEnumerable<T>) if/switch/while/do..while/for/foreach/try..catch/using
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!