Как мне написать запрос linq против ListCollectionView? - PullRequest
11 голосов
/ 26 мая 2011

ни один из них, похоже, не работает:

var source = myViewModel.MyListCollectionView.Select(x => x as MyType);
var source = myViewModel.MyListCollectionView.Select<object, MyType>(x => x as MyType);
var source = myViewModel.MyListCollectionView.SourceCollection.Select<object, MyType>(x => x as MyType);

Ответы [ 4 ]

26 голосов
/ 26 мая 2011

ListCollectionView реализует только неуниверсальный интерфейс IEnumerable. Я подозреваю Вы хотите:

var source = myViewModel.MyListCollectionView.Cast<MyType>();

или (если некоторые значения не будут MyType, и это нормально):

var source = myViewModel.MyListCollectionView.OfType<MyType>();
7 голосов
/ 26 мая 2011
var source = myViewModel.MyListCollectionView.OfType<MyType>();
2 голосов
/ 26 мая 2011

Свойство InternalList имеет тип IList, поэтому вы сможете написать запрос linq против этого.

1 голос
/ 26 мая 2011

ааааа нашел это.Вы должны использовать Cast <> first!

var source = myViewModel.MyListCollectionView.Cast<MyType>().Select(p=>p.MyProperty);
...