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