从 C# 中的继承 类 列表中获取对象

getting an object from a List of inherited classes in c#

我有一个基本类型 T 的对象列表,但它们都是不同的子类,比如继承自 T 的 T1、T2 等。此列表中每种类型都有一个对象。

如何从列表中获取类型为 T1 的元素?

您可以使用 List.OfType() 来做到这一点。如此处所示:Enumerable.OfType Method

您可以使用 Enumerable.OfType<T> 如:

var itemsOfT1 = yourList.OfType<T1>();

如果您需要单个项目,请使用:

var itemOfT1 = yourList.OfType<T1>().FirstOrDefault();

参见:Enumerable.OfType<T>

Filters the elements of an IEnumerable based on a specified type.

你可以这样做:

 T1 t1=null;
 foreach(var item in list)
  {
   if(item is T1)
   {
     t1 =item as T1;
     break;
   }
  }