所以我有一个对象集合。对象是不同类型的,但所有类型都来自单个基类。我想遍历集合,检查特定派生类型的对象,并为这些对象调用基类中的方法。这是我有:调用LINQ中某个类型的所有项目的方法
dim DogQuery = From Dog as DogBase in DogCollection
Where Dog.GetType = GetType(DogBeagle)
Select Dog
For Each d as DogBase in DogQuery
d.Feed()
Next
...但它似乎不雅。特别是当...
For Each Dog as DogBase in DogCollection
If Dog.GetType = GetType(DogBeagle) then
Dog.Feed()
End If
Next
...在(主观上)更紧密的代码中完成相同的事情。
我对即时执行的阅读表明,我想要做的事情的唯一方法是让LINQ返回一个单例或调用类似.ToList()的东西。有没有办法在不需要额外步骤的情况下立即执行?或者,这仅仅是LINQ对于手头任务过度使用的一个例子吗?
这是比我一直在寻找更好的。非常感谢你!我会尽快接受S/O让我。 :) – DWRoelands 2014-10-12 13:59:35