我有一个包含两种类型的对象 A 和 B 的集合。
Class Base{}
Class A : Base {}
Class B : Base {}
List<Base> collection = new List<Base>();
collection.Add(new A());
collection.Add(new B());
collection.Add(new A());
collection.Add(new A());
collection.Add(new B());
现在我想根据对象的类型(A 或 B,而不是两者)从集合中选择对象。
我如何为此编写 LINQ 查询?否则我需要循环遍历集合,但我不想这样做。
Edit:
感谢大家的帮助。现在我可以使用 LINQ 中的 OfType()。但我认为就我的情况来说这是行不通的。我的情况是
Class Container
{
List<Base> bases;
}
List<Container> containers = new List<Container>();
现在我想从容器中选择至少有一个类型A的容器。也许这不能通过LINQ来完成。
您可以使用OfType http://msdn.microsoft.com/en-us/library/bb360913.aspxLinq 方法:
var ofTypeA = collection.OfType<A>();
关于您是否愿意循环访问集合,您应该记住 Linq 不会魔术;我没有检查执行情况OfType
,但我会感到惊讶not在那里找到循环或迭代器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)