如何在C#中的基类型列表中使用Foreach
发布时间:2020-12-16 00:01:33 所属栏目:百科 来源:网络整理
导读:我在每个Tiles中都有一个名为“Within”的GameObject类型列表. ListGameObject Within = new ListGameObject(); GameObject派生出类型为Bee,Flower和Tree的类. 我正在做一个foreach,应检测列表中的所有蜜蜂,并选择或取消选择它们. foreach (Bee bee in Tile.
我在每个Tiles中都有一个名为“Within”的GameObject类型列表.
List<GameObject> Within = new List<GameObject>(); GameObject派生出类型为Bee,Flower和Tree的类. 我正在做一个foreach,应检测列表中的所有蜜蜂,并选择或取消选择它们. foreach (Bee bee in Tile.Within) { bee.selected = !bee.selected; } 问题是,当我这样做时,如果列表有一个类型为Flower或Tree的对象,我会得到一个异常: "Unable to cast object of type 'WindowsGame2.Flower' to type 'WindowsGame2.Bee'." 我认为foreach会在我们调用它时忽略所有不符合描述的对象,但它不会……我怎样才能让它工作? 解决方法
在foreach中使用LINQ进行过滤怎么样?
foreach (Bee bee in Tile.Within.OfType<Bee>()) { bee.selected = !bee.selected; } 那将只选择蜜蜂,没有花或树. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |