Diskuze: foreach
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 6 zpráv z 6.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Třeba jak píšeš máš pole simpsonovi
string[] simpsonovi = new string[] { "Homer", "Marge", "Lisa", "Bart", "Maggie" };
a foreach udělá to, že projde celé pole a všechny hodnoty zapíše do
té proměnné s
takže v s bude:
s = Homer
s = Marge
s = Lisa
s = Bart
Přesně jak napsal Kaczmi.Vše se ti uloží do té dané proměnně,kterou pak můžeš vypsat. Třeba takhle :
{
string[] simpsonovi = new string[] {"Homer","Marge","Lisa","Bart","Maggie" };
foreach (string s in simpsonovi)
{
Console.WriteLine("Toto jsou simpsonovi : {0}", s);
}
Console.ReadKey();
}
a výstup si můžeš zkusit. Foreach se ti bude hodit i do budoucna využiješ ho v OOP více jak třeba for a četl jsem,že i u kolekcí,ale to si nejsem jistý.
Řečeno stručnš, je to vylepšený cyklus for (nemusíš se starat o tolik věcí). Cyklus for se zapisuje třeba jako
for(přístupová proměnná v kolekci; podminka pro přístupovou
proměnnou; postup k dalšímu prvku na základě hodnoty přístupové
proměnné)
{
tuná se vytahuje prvek z kolekce na základě přístupové proměnné a
dělají se s ním různé kejkle
}
Když to zkusíš trošku abstrahovat tak potřebuješ kolekci, něco co ti
postoupí k dalšímu prvku a něco co ti vrátí hodnotu prvku v kolekci.
Když chceš použít foreach musíš mít kolekci, která je schopna ti vrátit
něco co ti umožní procházení touto kolekcí. v Cyklu for je to třeba
přístupová proměnná. Ve foreach se zavolá na kolekci metoda GetEnumerator,
to znamená, že daná kolekce musí implementovat interface IEnumerable. Get
Enumerator ti vrátí nco co je typu IEnumerator, to je interface, který
obsahuje dvě metody. Current(), ta ti vyhodí aktuální hodnotu a MoveNext(),
která se posune na další prvek v kolekci.
Pro podrobnější informace se mrkni na MSDN a hledej klíčové slovo yield a interfacy IEnumerable a IEnumerator.
Zobrazeno 6 zpráv z 6.