2010-12-07 5 views
0

Я объявляя IList:Как реализовать находку на IList и обновление свойств объекта на объектах, которые находятся

Dim OrigVendors as IList 
OrigVendors = new List(of IVendors) 

Я заселить OrigVendors переменной и то, что я хочу сделать, это найти все объекты, у которых есть ID, который я ищу. Затем мне нужно обновить свойство на этом объекте только для найденных. Является ли это способным с IList или мне нужно использовать какой-то другой тип коллекции? Я использую VB.net

ответ

1

Предполагая, что вы делаете различие между non-Generic version of IList и Generic List class, вы можете фильтровать определенные свойства.

Поскольку интерфейс IList не является результатом Generic IEnumerable (но, скорее, non-Generic version of IEnumerable), вы не можете использовать многие методы расширения на Enumerable class in the System.Linq namespace.

Однако, если вы знаете, что реализация необщего IList содержит только реализаций IVendors, то, что вы можете сделать это вызвать Cast extension method on IEnumerable так:

Dim typedVendors = OrigVendors.Cast(of IVendors) 

После того как вы напечатанное IEnumerable (of IVendors), вы можете использовать любой из методов LINQ, которые вы выбираете для фильтрации последовательности и выполнения операций над элементами.