Kezdőoldal » Számítástechnika » Programozás » C# foreach ciklust csak int...

C# foreach ciklust csak int típusú tömböknél érdemes használni?

Figyelt kérdés

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ó?



2016. dec. 14. 22:43
 1/3 anonim ***** válasza:

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

}

2016. dec. 14. 23:04
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

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

2016. dec. 14. 23:04
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:
Plusz megjegyzés: foreach-et nem használhatsz akkor, ha a ciklusban módosítani akarod a tárolót.
2016. dec. 14. 23:42
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!