Est-il un “HasNext” la méthode pour une IEnumerator?
Avec Java Iterator
s, j'ai utilisé le hasNext
méthode pour déterminer si une itération plus d'éléments (sans consommation d'un élément) -- ainsi, hasNext
est comme un "Peek
" la méthode.
Ma question: est-il quelque chose comme un "hasNext
" ou "Peek
" avec C#'s générique IEnumerator
s?
Comment pourriez-vous éventuellement ne pas savoir? Est-il possible que vous ne l'avez jamais vu msdn.microsoft.com/en-us/library/78dfe2yb.aspx?
Merci beaucoup pour souligner ce point, M. Saunders.
Merci beaucoup pour souligner ce point, M. Saunders.
OriginalL'auteur JaysonFix | 2009-08-13
Vous devez vous connecter pour publier un commentaire.
Non, malheureusement il n'y en a pas.
La
IEnumerator<T>
interface seulement expose les membres suivants:Méthodes:
Propriétés:
Nous prenons sur IEnumerator, au lieu de IEnumerable ici, non? Et * devrait être sur de Disposer, au lieu de MoveNext.
Aïe, ce poste a été en proie à des erreurs! Merci pour le tuyau.
OriginalL'auteur Andrew Hare
Pas, mais en C#, vous pouvez demander à plusieurs reprises pour l'élément courant, sans procéder à la suivante. C'est juste une façon différente de voir les choses.
Il ne serait pas trop difficile d'écrire une classe C# pour prendre un .NET-style
IEnumerator
et retourner un Java-styleIterator
. Personnellement, je trouve la .Style NET plus facile à utiliser dans la plupart des cas, mais nous y voilà 🙂EDIT: Bon, ce n'est absolument pas testé, mais je pense il va travailler. Elle permet au moins de compiler 🙂
(Je suis heureux de code de l'adaptateur si ça intéresse quelqu'un, mais je ne vais pas faire autrement...)
Je serais curieux de voir ça, Jon.
Wow, c'était rapide! Merci à vous, Jon!
elle place la responsabilité d'un peu différent. Je trouve le dotNet version plus facile de travailler avec.
OriginalL'auteur Jon Skeet
Agents recenseurs sont souvent paresseusement évalués, de façon à HasNext peu de sens.
OriginalL'auteur Ray
Nope, juste
MoveNext
,Reset
etCurrent
.OriginalL'auteur Matt Howells
Vous pouvez également essayer d'avoir un coup d'oeil à ce La mise en œuvre d'Œil à IEnumerator et IEnumerator<>. C'est une méthode d'extension qui ajoute de l'Œil de la fonctionnalité IEnumerator. Espérons que cela aide. 🙂
OriginalL'auteur Bryida