首页 > 解决方案 > 无法使用保存的信息加载到数组中

问题描述

我已经设法将一些信息保存到一个文件中。我希望能够阅读该信息并使用它来创建一个项目

public void Save()
{            
   StreamWriter writer;
   writer = new StreamWriter("PlayerInventory.txt");
   for (int i = 0; i < playerInventory.Length; i++)
   {
      if (playerInventory[i] != null)
      {
         if (playerInventory[i] is Sheild sheild)
         {
            writer.WriteLine("Sheild:" + sheild.Defence + "," + sheild.name + "," + sheild.description + "," + sheild.cost);
         }
      }     
   }
   else
   {}
}

我开始使用此代码来加载它,但我不知道如何完成代码。现在它的分裂,但我不知道如何将它分配给任何东西。

例如sheild:20,Shield,this is a shield,100

现在它分为

  1. 20,
  2. 盾,
  3. 这是一个盾牌,
  4. 100

但我不知道谁将这些东西分配给数组

public void Load()
{
   StreamReader reader;
   reader = new StreamReader("PlayerInventory.txt");
   string line;
   string[] currentLineData;

   while (true)
   {
      try
      {
         line = reader.ReadLine();
         if (line == null)
         {
            break;
         }
         if (line.Contains("Sheild"))
         {
            line.Replace("Sheild:", "");
            currentLineData = line.Split(',');
         }
      } 
      catch
      {
         break;
      }
}
reader.Close();}

标签: c#arraysfilesplitsave

解决方案


看起来你正在设计一个游戏。

如果我要设置一个包含带有统计信息的盾牌的库存,我会考虑创建一个复杂的数据类型,对库存项目使用“结构”。

然后我会创建一个库存结构项目数组,每个库存插槽都有一个 - 在加载我的文件之前。

这可以包含您需要的所有不同信息,这些信息可以存储在库存中的任何项目,如项目名称、防御强度、攻击强度等。

然后,当你加载你的文件时,所有正确的东西都会放在名字好听的地方,以便你以后轻松找到它们。

如果您需要额外的统计信息,请在您的结构定义中添加一行,然后在您的文件中添加一列,您就可以开始了。


推荐阅读