如何针对ListCollectionView编写linq查询?

Tio*_*ion 11 c# linq wpf mvvm 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);
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 26

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

var source = myViewModel.MyListCollectionView.Cast<MyType>();
Run Code Online (Sandbox Code Playgroud)

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

var source = myViewModel.MyListCollectionView.OfType<MyType>();
Run Code Online (Sandbox Code Playgroud)

  • 次要注意:OfType也会删除空项. (3认同)

Alb*_*nbo 7

var source = myViewModel.MyListCollectionView.OfType<MyType>();
Run Code Online (Sandbox Code Playgroud)