我已经得到了继承Object2D(DisplayObject2D比如)一个抽象类(Object2D),和几个班级C# - 遍历列表中给定类型的元素<T>
我用一个列表来存储这些所有引用对象。
我想循环访问此列表中的每个DisplayObject2D。
到目前为止,下面的代码工作,但作为新的C#开发,我想知道,如果没有任何更好的做法是这样做的:
List<Object2D> tmp = objects.FindAll(delegate(Object2D obj)
{ return obj is DisplayObject2D; });
foreach(DisplayObject2D obj in tmp)
{
...
}
提前感谢!
@ZedK:+1好问题:与我正在处理的事情有关系。我敢肯定,你意识到你可以直接在foreach循环中使用George的答案,但我会提及它,以防万一:foreach(object.OfType中的Object2D obj()){...}:of当然,你可能还有其他的理由在'tmp中保存已过滤的对象,所以你可能不想'按照类型'开火和忘记'过滤的结果。 –
BillW
2009-12-31 11:06:27
是的,这就是我刚才所做的(在添加缺少的“使用System.Linq”语句之后),所有内容都只在一行中完成,非常完美。谢谢! – 2009-12-31 11:31:52