如果你有两个对象,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/