181 votes

Comment faire pour obtenir l’index d’un élément dans un IEnumerable ?

J’ai écrit ceci :

Mais je ne sais pas si elle existe déjà, ça ?

151voto

Marc Gravell Points 482669

Je me demande la sagesse, mais peut-être :

(en utilisant pour émuler si nécessaire)- mais il faut regarder au retourne -1 si elle n’est ne pas trouvé... alors peut-être juste faire le long chemin

58voto

Scott Dorman Points 25000

Tout l’intérêt de faire les choses comme IEnumerable est donc vous pouvez itérer paresseusement sur le contenu. Par conséquent, il n’est pas vraiment un concept d’un index. Ce que vous faites vraiment ne fait pas beaucoup de sens pour un IEnumerable. Si vous avez besoin de quelque chose qui prend en charge l’accès par index, mettez-le dans une liste ou une collection.

33voto

dahlbyk Points 24897

Je mettrait en œuvre comme ceci :

13voto

Axente Adrian Points 11

Je pense que la meilleure option est de mettre en œuvre comme ceci :

Il ne créera pas également l’objet anonyme

2voto

steffan Points 365

Depuis .NET Framework 3.5 un Énumérable.ElementAt Méthode est disponible.

Dans le cas où le sous-jacent discbased prend en charge un indexeur, l'indexeur est utilisé. Sinon, un agent recenseur est utilisé. Ainsi, la méthode fournit des éléments jusqu'à ce que l'élément à l'indice est disponible.

La méthode est également discuté ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X