avec java Ma question: Y a-t-il quelque chose comme un " itérateur code> s, j'ai utilisé la méthode
hasnext code> pour déterminer si une itération a plus d'éléments (sans consommer un élément) - Ainsi,
hasnext code> est comme une méthode "
peek code>". p>
hasnext code>" ou "
peek code>" méthode avec C # Generic
ienumerator code> S? P>
6 Réponses :
Non, malheureusement, il n'y a pas. p>
the ienumerator
L'interface n'expose que les membres suivants: P>
propriétés strong>: p>
Dispose code>
movenext code>
réinitialiser code> p>
blockQuote>
actuel code> p>
blockQuote>
Nous prenons sur Ienumerator, au lieu d'Iénumerable ici, non? Et * devrait être sur disposer, au lieu de MOVENNEXT.
@Even - Yikes, ce poste était répandu avec des erreurs! Merci de les pointer de l'avant.
Non, mais en C #, vous pouvez demander à plusieurs reprises l'élément actuel sans passer à la suivante. C'est juste une façon différente de le regarder.
Ce ne serait pas trop em> difficile à écrire une classe C # pour prendre un fichier EDIT: D'accord, ceci est complètement non testé, mais je em> pense em> cela fonctionnera. Il compile au moins :) p> ienumerator. / Code> et renvoyer un Java-style
itérateur code>. Personnellement, je trouve le style .NET plus facile à utiliser dans la plupart des cas, mais nous y allons :) p>
(Je suis heureux de coder l'adaptateur si quelqu'un vous intéresse, mais je ne le ferai pas autrement ...)
Je serais intéressé à la voir, Jon.
Wow, c'était rapide! Merci, Jon!
@Andrew, il accorde un peu la responsabilité. Je trouve la version DotNet plus facile à travailler avec.
L'échec majeur des itérateurs de Java est qu'ils ne disposent pas de l'équivalent de Idisposable, ce qui les rend impossibles à utiliser pour tout ce qui pourrait être itérateur sur une ressource (par exemple des lignes dans un fichier).
Pourquoi avez-vous 4 cours et pas seulement 2? Je penserais que vous avez juste besoin de classes qui enveloppent Ienumerable et Iénumerator. Quelle est l'activité Iiterator?
@Eyal: Ils ne sont que des mappages pour les interfaces Java. Vous n'avez pas avoir i> pour les avoir bien sûr - mais utiliser la classe de béton ici serait Force i> vous utiliser toujours l'enveloppe, même si vous vouliez parfois mettre en œuvre le style Java directement.
Les énumérateurs sont souvent évalués paresseusement afin que Hasnext ait peu de sens. P>
Vous pouvez également essayer de consulter ce
0 commentaires
Utilisez une bonne vieille vieille itération
Comment pourriez-vous éventuellement ne pas savoir? Est-il possible que vous n'ayez jamais vu msdn.microsoft.com/en-us/ Bibliothèque / 78DFE2YB.ASPX ?
Merci beaucoup d'avoir souligné cela, monsieur Saunders.