LINQ where查询不同派生类的集合

LINQ where查询不同派生类的集合,linq,Linq,我有一个从同一个父对象派生的不同对象的集合 如何从包含混合类型的集合中提取特定类型的对象 e、 g 集合将包含类型为B和C的对象 我已经走到一半了,只是需要帮忙填写“[]”部分 var x = from xTypes in xCollection where '[type of object is type B]' select xTypes; 谢谢 var x = from xTypes in xCollection where xTypes is B s

我有一个从同一个父对象派生的不同对象的集合

如何从包含混合类型的集合中提取特定类型的对象

e、 g

集合将包含类型为B和C的对象

我已经走到一半了,只是需要帮忙填写“[]”部分

var x = from xTypes in xCollection where '[type of object is type B]' select xTypes;
谢谢

var x = from xTypes in xCollection 
        where xTypes is B 
        select xTypes;
或者,如果您想要的正是此类型而不是任何派生类型:

var x = from xTypes in xCollection 
        where xTypes.GetType() == typeof(B) 
        select xTypes;
或者,如果您想要的正是此类型而不是任何派生类型:

var x = from xTypes in xCollection 
        where xTypes.GetType() == typeof(B) 
        select xTypes;

对此,您应该使用类型的扩展方法而不是LINQ查询语法:

var x = xCollection.OfType<B>();

对此,您应该使用类型的扩展方法而不是LINQ查询语法:

var x = xCollection.OfType<B>();

我喜欢扩展方法。干净多了。谢谢。我喜欢扩展方法。干净多了。非常感谢。