Как написать запрос 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);