2009-11-24 3 views

Répondre

5

Dépend de la façon dont l'énumérateur est implémenté. L'implémentation est libre de renvoyer une copie ou l'objet lui-même. En fait, il peut retourner tout ce qu'il veut; par exemple, Enumerable.Range renvoie une séquence de nombres et aucun des éléments n'est réellement stocké n'importe où. Ils sont générés à la volée. Si le type de retour est un type de valeur, c'est certainement une copie de quelque chose.

De même, rien ne nécessite que l'objet renvoie la même séquence chaque fois que GetEnumerator y est appelée. Dans votre exemple de code, il le fait une fois dans foreach et une autre fois lorsque vous appelez .First. Ces séquences ne doivent pas nécessairement être équivalentes.

+0

Merci l'homme. J'ai rapidement vérifié l'endroit où l'IEnumarable a été créé et ce que j'ai trouvé de rec en recs sélectionnez nouveau XYZ (rec) Merci encore pour votre aide. – malay

Questions connexes