我已經得到了繼承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