如何针对ListCollectionView编写linq查询

本文关键字:linq 查询 编写 ListCollectionView 何针 | 更新日期: 2023-09-27 17:57:49

这些似乎都不起作用:

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);

如何针对ListCollectionView编写linq查询

ListCollectionView仅实现非通用IEnumerable接口。我怀疑你想要:

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

或者(如果某些值不是MyType,那没关系):

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

InternalList属性的类型为IList,因此您可以针对它编写linq查询。

ahhhh找到了它。您必须使用Cast<>第一

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