gpt4 book ai didi

c# - 在列表中查找子类

转载 作者:太空宇宙 更新时间:2023-11-03 19:30:24 28 4
gpt4 key购买 nike

嗨,我现在遇到了一些问题,我目前有一个类“Ship”,其子类“Player”和“Enemy”都在“Ships”列表中

我要做的是从“Ships”列表中提取“Player thePlayer”我试过使用 List.Find() 但没有成功,是我用错了还是处理这个问题的方法不对?

    for (int i = 0; i < HomingBullets.Count; i++)
{
HomingBullet h = HomingBullets.ElementAt(i);
Player thePlayer = ??? List.Find ???
h.Update(gameTime, thePlayer.position);
}

h.Update 接受两个参数(gameTime 和 Vector2)我正在尝试使用上面的代码提取 Vector2。

请记住,尽管我有几年使用各种语言进行编程的经验,但自今年年初以来我只使用过 C#。

最佳答案

您可以使用 LINQ 的 OfType<>运算符仅返回列表中特定类型的对象或一般的 IEnumerable。例如。你可以写

Ships.OfType<Player>()

只返回 Player 类型的实例。

虽然这是一种非常低效的搜索方式,因为它会遍历所有 Ships。我怀疑玩家船只只占船只总数的很小一部分。最好保留一个单独的玩家飞船列表,该列表引用 Ship 集合中的 Ship 实例。

关于c# - 在列表中查找子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5377670/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com