C# – 遍历List中的给定类型元素
发布时间:2020-12-16 00:12:39 所属栏目:百科 来源:网络整理
导读:我有一个抽象类(Object2D)和几个继承Object2D的类(例如DisplayObject2D) 我使用List来存储对这些对象的所有引用. 我想遍历此List中的每个DisplayObject2D. 到目前为止,以下代码正在运行,但对C#开发不熟悉,我想知道是否有更好的做法: ListObject2D tmp = obj
我有一个抽象类(Object2D)和几个继承Object2D的类(例如DisplayObject2D)
我使用List来存储对这些对象的所有引用. 我想遍历此List中的每个DisplayObject2D. 到目前为止,以下代码正在运行,但对C#开发不熟悉,我想知道是否有更好的做法: List<Object2D> tmp = objects.FindAll( delegate( Object2D obj ) { return obj is DisplayObject2D; } ); foreach( DisplayObject2D obj in tmp ) { ... } 提前致谢! 解决方法var objects2d = objects.OfType<DisplayObject2D>(); 如果你想要一个IEnumerable var listOfObjects2d = objects2d.ToList(); 如果你想要一个List 请注意,OfType将为您提供更具体的类型 IEnumerable<DisplayObject2D> 如果它不是您所期望的,请使用Cast扩展将其强制转换为可枚举的基类型. var listOfObjects2dFilteredByMoreSpecificType = objects.OfType<DisplayObject2D>.Cast<Object2D>() //.ToList() // until you really need an IList<T> better leave it just an enumerable ; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |