2010-05-26 3 views
35

У меня есть IEnumerable, который содержит число данных внутри него.Как перейти к определенному элементу в IEnumerable

Редактировать IEnumerable из System.Collection.Ienumerable директивы.

Прикрепленный снимок Viual Studio, Enum, который содержит данные:

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

Просто проинформирует об изображении выше, eLevelData является IEnumerable переменная, в которой у меня есть данные.

Теперь я хочу перейти к данным с индексом 4 или 5, но я не хочу использовать цикл foreach. Любые предложения, пожалуйста.

Спасибо,

Subhen

ответ

80

var item = eLevelData.ElementAt(index);

Если ваша коллекция набирается, как IEnumerable вместо IEnumerable<T> вам нужно использовать метод Cast расширения перед вызовом ElementAt например

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

+0

Привет Ли, я не получаю ElementAt(). Я использую это в Silverlight – Simsons

+2

@Subhen - У вас есть 'using System.Linq' директива в верхней части страницы? Он работает в Silverlight 3 для меня. – Lee

7

Есть много о том, что подмножество .NET BCL/LINQ доступен в Silverlight не знаю, но Skip должны сделать трюк. Но, вообще говоря, она до сих пор использует foreach внутренне:

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

Так же 'ElementAt', но он получает ответ более непосредственно, чем Пропустить' метод '(х) .Первый() – toddmo

Смежные вопросы