我有一个基类型为T的对象列表,但它们都是不同的子类,比如T1,T2等继承自T。这个列表中每种类型都有一个对象。
如何从列表中获取T1类型的元素?
答案 0 :(得分:4)
您可以使用Enumerable.OfType<T>
之类的:
var itemsOfT1 = yourList.OfType<T1>();
如果您需要单个项目,请使用:
var itemOfT1 = yourList.OfType<T1>().FirstOrDefault();
根据指定的类型过滤IEnumerable的元素。
答案 1 :(得分:1)
你可以用List.OfType()来做到这一点。如下所示:Enumerable.OfType Method
答案 2 :(得分:1)
你可以这样做:
T1 t1=null;
foreach(var item in list)
{
if(item is T1)
{
t1 =item as T1;
break;
}
}