web-dev-qa-db-fra.com

Comment accéder à un élément particulier dans IEnumerable

J'ai IEnumerable qui contient des données numériques à l'intérieur.

Edit L'IEnumerable provient de la directive System.Collection.Ienumerable.

Attaché l'instantané de Viual Studio, Enum qui contient des données:

texte alternatif http://www.freeimagehosting.net/uploads/bd72c6c310.jpg

Juste pour donner un aperçu de l'image ci-dessus, eLevelData est la variable IEnumerable, dans laquelle j'ai mes données.

Maintenant, je veux aller aux données à l'index 4 ou 5, mais je ne veux pas utiliser la boucle foreach. Toutes suggestions s'il vous plaît.

Merci,

Subhen

42
Simsons

var item = eLevelData.ElementAt(index);

Si votre collection est tapée comme IEnumerable au lieu de IEnumerable<T>, Vous devrez utiliser la méthode d'extension Cast avant de pouvoir appeler ElementAt, par exemple.

var item = eLevelData.Cast<RMSRequestProcessor.RMSMedia>().ElementAt(index)

90
Lee

Je ne sais pas grand-chose sur le sous-ensemble de .NET BCL/LINQ disponible dans Silverlight, mais Skip devrait faire l'affaire. Mais de manière générale, il utilise toujours foreach en interne:

var item = eLevelData.Skip(4 /* or 5 */).First();
7
Anton Gogolev