【发布时间】:2020-08-20 10:57:18
【问题描述】:
这是一个游戏。当他们加载游戏时,我正在尝试将玩家的物品重新加载到他们的库存中。下面的“itemStrings”是玩家保存游戏时所有项目名称的字符串列表。代码如下:
void Load(){ List<string> itemStrings = SaveLoad.Load<List<string>>("Inventory");
foreach(string nameString in itemStrings)
{
loadReference = itemDatabase.itemsDatabaseList.Where(obj => obj.name == nameString).First();
bool wasAdded = instance.Add(loadReference);
}}
作为参考,itemDatabase 是对一个类 ItemDatabase 的引用。存储游戏中的每个项目。 loadreference 是一个名为 Item 的类,它在此 Inventory 类的开头声明。
我要做的是在数据库中搜索名称与 itemStrings 中的字符串匹配的项目,然后获取该项目并将其添加到玩家的库存中。这个“foreach”对 itemStrings 列表中的第一项正常工作,但它只运行一次。所以它只会将一件物品加载到库存中,无论之前保存了多少。
【问题讨论】:
-
嗨 Nubaa,您能否创建 minimal reproducible example,以便我们准确了解您在这里想要实现的目标
标签: c# list linq loops foreach