你如何在c#中比较一维数组和二维数组

时间:2021-04-28 19:27:18

标签: c# for-loop multidimensional-array

在一维数组中(就我而言,背包插槽)我存储了我购买的所有物品。 在二维数组中,我存储项目信息(名称、ID、价格和功率)。 当我购买项目时,它会在背包数组的第一个空数组索引中插入项目名称。 当我尝试选择该项目时,它返回错误的功率。

我的例子: 我在店里有 5 件商品。如果我购买第 5 层(最后一层),它会将物品名称存储在背包数组中,因此背包 [0] 与物品 [4] 相等。现在我需要找到一个解决方案如何访问背包数组中的那个项目,这样我就可以获得项目的完整信息,比如力量。

到目前为止我有这个

Console.Clear();
          Console.WriteLine("|Invetory|");
          Console.WriteLine("To change item, enter slot number");
          Console.WriteLine("To quit inventory, enter 9");
          for(int i = 0; i<backpack.Length; i++)
          {
            Console.WriteLine("Slot " + i + " |  " + backpack[i]);
          }
          Console.WriteLine("\n\n");
          pressedKey = Console.ReadLine();

            if(Int32.Parse(pressedKey) == i)
            {
              if(backpack[i] == null){
                income = 1;
              }else
              {
              strConvert = items[i,3];
              income = Int32.Parse(strConvert);
              }
            }          

          }
          break;

我想我可以用这个代码片段 strConvert = items[i,3]; income = Int32.Parse(strConvert); 使用此代码,如果我从项目数组中获得背包值 5,它将存储在背包中的第一个值,当我选择此背包值(装备该项目)时,它会返回我项目数组的第一个值。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我自己解决的。我会保留这个问题,以便其他人可以查看并学习一些东西

Console.Clear();
          Console.WriteLine("|Invetory|");
          Console.WriteLine("To change item, enter slot number");
          Console.WriteLine("To quit inventory, enter 9");
          for(int i = 0; i<backpack.Length; i++)
          {
            Console.WriteLine("Slot " + i + " |  " + backpack[i]);
          }
          Console.WriteLine("\n\n");
          pressedKey = Console.ReadLine();
          for(int i = 0; i < backpack.Length; i++)
          {
            if(Int32.Parse(pressedKey) == i)
            {
              for(int x = 0; x < items.Length; x++)
              {
                if(backpack[i] == items[x, 0])
                {
                strConvert = items[x,3];
                income = Int32.Parse(strConvert);
                break;
                }
              }
            }          
          }
          break;