2011-12-15 4 views
21

У меня есть ListCollectionView, на котором был применен фильтр. Чтобы получить отфильтрованные элементы из списка (например, для записи в файл), есть ли чистый способ сделать это.Отфильтрованные элементы из CollectionView

Моего текущее решение

var filteredItems = originalCollection.Where(i => view.Filter(i)); 

В коде я проверить для нулей на originalCollection и view.Filter.

Есть ли более чистый способ сделать это?

+0

'вар filteredItems = originalCollection.FindAll (view.Filter);' также работает –

ответ

36

GetEnumerator метод принимает фильтр во внимание, так что вы можете просто foreach по мнению:

ICollectionView view = ... 
view.Filter = ... 

foreach(Foo o in view) 
{ 
    ... 
} 

(предполагая, что объекты в оригинальной коллекции типа Foo).

Вы также можете использовать метод Cast расширения:

var filteredItems = view.Cast<Foo>(); 

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

  • Нет связанных вопросов^_^