如果我有像这样的收藏

List<SomeAbstractBaseType> someList = new List<SomeAbstractBaseType>();


并且我向此集合添加了两种不同的子类型(即,这两种子类型都继承自SomeAbstractBaseType),如下所示:

someList.Add(someChildOfType1);
someList.Add(someChildOfType2);
someList.Add(someOtherChildOfType1);
someList.Add(someOtherChildOfType2);


假设我要查询someChildOfType1的所有元素。我该怎么做我尝试了以下方法(它不能编译,可以从子类型转换为父类型)

List<ChildType1> temp = someList.Where(x => x.GetType() == typeof(ChildType1)).ToList();


有什么想法可以做到吗?

最佳答案

List<ChildType1> temp = someList.OfType<ChildType1>().ToList();

关于c# - 在集合中搜索C#/Linq中的子类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3139571/

10-12 15:06