Skip to main content
 首页 » 编程设计

c#之在 C#/Linq 中搜索子类型的集合

2024年02月24日39zdz8207

如果我有一个像这样的集合

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