如果你有两个对象,ObjectA 和 ObjectB 都继承自 AbstractObject 和一个 AbstractObject 的集合。在我选择特定类型集合中的所有对象时,linq 语句会是什么样子。前任。就像是:

var allBs = from b in collection where type == ObjectB select b;

最佳答案

您可以使用 Enumerable.OfType :

var allBs = collection.OfType<ObjectB>();

这为您提供了类型可强制转换为 ObjectB 的所有元素。如果您想要仅属于 ObjectB 类型的对象:
var allBs = collection.Select(i => i.GetType() == typeof(ObjectB));

或者,或者:
var allBs = from b in collection
            where b.GetType() == typeof(ObjectB)
            select b;

关于linq - 查询集合中特定对象类型的 a,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3663914/

10-13 01:16