【发布时间】:2010-12-31 09:18:37
【问题描述】:
我有一个抽象类(Object2D),以及几个继承 Object2D 的类(例如 DisplayObject2D)
我使用 List 来存储对这些对象的所有引用。
我想遍历此列表中的每个 DisplayObject2D。
到目前为止,以下代码正在运行,但是对于 C# 开发来说是新手,我想知道是否有更好的做法:
List<Object2D> tmp = objects.FindAll( delegate( Object2D obj )
{ return obj is DisplayObject2D; } );
foreach( DisplayObject2D obj in tmp )
{
...
}
提前致谢!
【问题讨论】:
-
@ZedK:+1 好问题:与我现在正在做的事情有关。我很确定你意识到你可以直接在 foreach 循环中使用 George 的答案,但我会提到它,以防万一: foreach(Object2D obj in objects.OfType
()) { ... } : of当然,您可能有其他原因将过滤后的对象保留在 'tmp 中,因此您可能不想“触发并忘记”按类型过滤的结果。 -
是的,这就是我刚刚所做的(在添加了缺少的“using System.Linq”语句之后),一切都在一行中完成,非常完美。谢谢!