Désolé pour une question aussi vague, mais je cherche la meilleure partie de la journée, j'ai lu l'article après l'article (et de nombreuses questions ici), mais je ne peux tout simplement pas trouver une réponse facile à comprendre.
i (Pensez-moi) savoir ce que ISenumerable est pour, mais je ne peux tout simplement pas comprendre ce que cela signifie lorsqu'il est défini avec un argument de type générique, par exemple: p>
IEnumerable<int> test = method();
5 Réponses :
Je pense juste à ienumerable
ienumerable
Je n'aime pas vraiment cette analogie. Une liste suppose que tous les articles sont au même endroit. Où comme un iEnumerable code> dit simplement que vous pouvez obtenir tous les éléments de certaines séquences. C'est comme la différence entre un livre téléphonique et Internet. Je peux obtenir tous les chiffres pour les plombiers à Chicago de l'un ou l'autre endroit, mais dans le répertoire, ils sont déjà dans une liste - alors que dans un
ienumerable code> ou sur Internet, ils peuvent être n'importe quoi, je viens de Besoin de savoir comment les trouver - je ne vous ai pas révélé cependant, je pense simplement que votre réponse pourrait utiliser un peu plus de clarté.
User689466 cherche un moyen de comprendre iEnumerable. Clairement, il y a des différences - ce n'est qu'un point de départ avec un concept facilement compréhensible et une fois qu'il vit qu'il puisse passer à la compréhension des subtilités entre les deux
Le mot que vous recherchez est "Generics", et l'exemple que vous donnez est iEnumérable utilisé comme générique pour les articles de type INT. Ce que cela signifie, c'est que la collection iEnumerable que vous utilisez est fortement touchée pour ne contenir que des objets INT par opposition à tout autre type. P>
Google "C # Generics iEnumerable" et vous trouverez toutes les informations que vous souhaitez sur cette question. P>
Ienumerable signifie qu'il peut être utilisé dans une boucle de foresach.
éléments code> peut être utilisé sous la forme de p>
Un Un Ce message peut également être utile: Qu'est-ce que La différence entre iénumérable et matrice, iliste et liste? p> iEnumerable code> est essentiellement une collection d'objets. Il a la méthode
getenumerator () code> qui vous permet de parcourir tous les objets dans l'énumérable. P>
iEnumerable
getenumerator () code> qui vous permet de parcourir tous les entiers dans l'énumérable. P>
iEnumerable
méthode () code> obtient une collection si des entiers de quelque part. Il pourrait s'agir d'une liste, d'une matrice ou d'un autre type de données, mais c'est certainement un groupe d'entre eux et ce sont tous des entiers et vous avez la capacité de les ithérer. p>
Ok, je pense que je comprends maintenant, je n'ai pas réalisé que cela pourrait être une collection et je n'ai tout simplement pas compris comment cela a fonctionné. Y a-t-il une bonne ressource que vous pouvez montrer qui montre les avantages / les pièges comparant iEnumerable / liste / tableaux, car je veux vraiment en savoir plus. +1 (quand je peux!)
Les listes et les tableaux ont tous deux implémenté ienumerable code>. Toutes les collections génériques dans
System.Collections.Generic code> Implémente
iEnumerable
Merci ... et marquage comme réponse ... Vous voudrez peut-être éditer / mettre ce lien dans votre réponse principale, car cela m'a vraiment fait comprendre complètement.
un Une autre distinction est que iEnumerable code> a une méthode
getenumerator code> qui retournera un
ienumerator code>, dont la méthode code> actuelle code> retournera un < Code> Object code>. Un
ienumerable
getenumerator code> qui renvoie un
ienumerator
actuelle code> sera Renvoie un
t code>. Si vous savez à l'avance, le type attendu de l'objet doit être renvoyé par l'énumérateur, il est généralement préférable d'utiliser la forme générique. P>
ienumerator
Idisposable code>, qui permet au code qui est effectué avec un énumérateur à appeler
Disposer code> sur elle sans avoir à s'inquiéter de savoir s'il est soutenu. Par comparaison, lors de l'utilisation d'un
ienumerator code> non générique, il est nécessaire de tester s'il est
Idisposable code> et appelez
Dispose code> dessus si tel est le cas. Notez que l'utilisation de la forme non générique de
ienumerable code> ienumerator
ne soulage pas l'une des obligations d'appeler
Disposer code>. À titre d'exemple, jetez la collection de style VB à
ienumerable code>, puis appelant
getenumerator code> 100 000 fois sans appeler
Disposer code> sera extrêmement lent (plusieurs secondes, Même sur une I7) à moins qu'une collection de déchets se produise. Disposer le
ienumerator code> après que chaque appel accélère plus de cent fois. P>