# NPRG038 15.6.2010

<{ForumPost(poster="Kubees", timestamp=2010-06-21 09:07:03)}>
Ahoj, pozde ale prece:

*Attachments:*

- *![foto-2](/NPRG038/Zkou%C5%A1ka%202010-06-15/foto-2.jpg)*
- *![foto-1](/NPRG038/Zkou%C5%A1ka%202010-06-15/foto-1.jpg)*

<{/ForumPost}>

<{ForumPost(poster="Kubi", timestamp=2010-06-25 12:48:03)}>
Mohl by mi prosim nekdo vysvetlit jak resit 2? o LINQu sem si neco precetl,ale neco mi porad unika :)
<{/ForumPost}>

<{ForumPost(poster="Kubees", timestamp=2010-06-29 12:42:34)}>
Ja tomu rozumim tak, ze foreach spousti metodu GetEnumerator() toho vytvorenyho var list, coz je nejaka kolekce ktera to umoznuje.  
A prochazi to tim zpusobem, ze pri kazdym pruchodu to vrati jeden yield return z tech returnu ktere jsou v tele GetEnumerator() - tzn. ze se provadi prikazy v tele toho GetEnumerator() nez se narazi na yield return, ktery byl vybran do te kolekce (napriklad where x>1 ho mohlo vyradit) atd. dokud se neprojde cela kolekce=vsechny returny.  
  
Je dulezite si uvedomit, ze telo GetEnumerator a foreach bezi paralelne - GetEnumerator vraci kolekci, ale kazdy prvek zvlast, az kdyz se ho na to foreach zepta, mezitim ceka za poslednim returnem, ktery vracel.  
  
Snad to neni moc zmatene.  :)
<{/ForumPost}>

<{ForumPost(poster="Kubi", timestamp=2010-06-29 19:10:56)}>
Super,dik moc,velmi pomohlo :)  
Sem netusil ze ten LINQ dotaz vyhazi yield retutrny z ty kolekce :)
<{/ForumPost}>

