检查对象列表中是否有相同类型的对象?

Checking is there any same type object inside of the object list?

我有一个派生自 A 类型的对象列表(X 和 Y 派生自 A)

List<A> list = new List<A>()
{
   new X(),
   new Y(),
};

我有一个派生自 A 类型的对象。 Z 对象

我想检查类型是否相等,如果列表对象类型中有与 Z 对象相同的类型 我怎样才能写出这样的代码?

您可以简单地按照建议的重复写法:

bool containsOfTypeZ = list.OfType<Z>().Any();

或者@KlausGütter 的想法:

var someType = someInstance.GetType();
bool containsOfSomeRuntimeType = list.Any(o => o.GetType() == someType);