如何按类型筛选集合
本文关键字:集合 筛选 类型 何按 | 更新日期: 2023-09-27 17:53:09
我有三个类:
public class class1 {}
public class class2 : class1 {}
public class class3 : class1 {}
和class1
的项目列表,但我只想获得class2
类型的项目,例如:
list = list.where(x=>x.classType == class2)
怎么做才是正确的?
谢谢!
您可能需要OfType<T>()
:-
var newList = list.OfType<Class2>().ToList();
以及更简洁,这有一个额外的好处,newList
是List<Class2>
类型(而不是碰巧只包含Class2
实例的List<Class1>
),节省了您进一步的转换。
您想使用GetType()
方法和typeof()
:
list = list.Where(x => x.GetType() == typeof(class2)).ToList();
或者,您可以使用is
:
list = list.Where(x => x is class2).ToList();