2010-05-26 15 views
35

J'ai IEnumerable qui contient le nombre de données à l'intérieur.Comment aller à l'article particulier dans IEnumerable

Édition La propriété IEnumerable provient de la directive System.Collection.Ienumerable.

Ci-joint le SNaPshot de Viual Studio Enum qui contient des données:

alt text http://www.freeimagehosting.net/uploads/bd72c6c310.jpg

Juste pour informer sur l'image ci-dessus, eLevelData est la variable IEnumerable, dans lequel j'ai mes données.

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

Merci,

Subhen

Répondre

80

var item = eLevelData.ElementAt(index);

Si votre collection est entré comme IEnumerable au lieu de IEnumerable<T> vous aurez besoin d'utiliser la méthode d'extension Cast avant de pouvoir appeler par exemple ElementAt

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

+0

Salut Lee, Je ne reçois pas ElementAt(). Je l'utilise dans Silverlight – Simsons

+2

@Subhen - Avez-vous une directive 'using System.Linq' en haut de la page? Cela fonctionne dans Silverlight 3 pour moi. – Lee

7

Ne sait pas beaucoup sur ce sous-ensemble de .NET BCL/LINQ est disponible dans Silverlight, mais Skip devrait faire l'affaire. Mais d'une manière générale, il utilise encore foreach interne:

var item = eLevelData.Skip(4 /* or 5 */).First(); 
+0

'ElementAt' Il en va, mais il obtient la réponse plus directe que la méthode' Passer (x) .Premier() ' – toddmo