Как мне написать запрос linq против ListCollectionView?
Ни один из них, кажется, не добивается цели:
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 ответа
Решение
ListCollectionView
реализует только неуниверсальный IEnumerable
интерфейс. Я подозреваю, что вы хотите:
var source = myViewModel.MyListCollectionView.Cast<MyType>();
или (если некоторые значения не будут MyType
и ничего страшного)
var source = myViewModel.MyListCollectionView.OfType<MyType>();
var source = myViewModel.MyListCollectionView.OfType<MyType>();
InternalList
свойство типа IList
так что вы сможете написать linq
запрос против этого.
Ааааа нашел это. сначала вы должны использовать Cast<>!
var source = myViewModel.MyListCollectionView.Cast<MyType>().Select(p=>p.MyProperty);