-2

目前我有

public void sellAllBut() {
Iterator<String> i = inventory.iterator();
while (i.hasNext()) {
  if (!i.next().equalsIgnoreCase("pickaxe")) {
    i.remove();
  }   
}

}

现在它只从inventory.class 字符串数组中删除该项目。如何添加它,以便在删除该项目时,它使用 inventory.goldCoins += intvalue 添加黄金数量;

我的 int 值是

    //ores
    int copperoPrice = 150;
    int ironoPrice = 200;
    int steeloPrice = 350;
    int goldoPrice = 500;
    int diamondoPrice = 700;
    int pickaxePrice = 500;

放入数组的项目是:

    String ore = null;


     if (oreFind <= 50) {
         ore = "Copper ore";

         } 

     if (oreFind >=51) {
         if (oreFind <= 70) {
             ore = "Iron ore";
         }
     }
     if (oreFind >=71) {
         if (oreFind <= 90) {
             ore = "Steel ore";
         }
     }
     if (oreFind >=91) {
         if (oreFind <= 99) {
             ore = "Gold ore";
         }
     }
     if (oreFind == 100) { 
             ore = "Diamond ore";
     }

在将字符串值设置为矿石后,我使用这行代码将其添加到我的库存字符串数组中:

库存.addInventory(矿石);

所以例如我的库存可以有:[钻石矿石,金矿石,金矿石]

我能做些什么来给这些中的每一个定价并将其放入 sellAllBut 无效中?

4

1 回答 1

0

这有点令人困惑,但您不会只是在做类似的事情;

对于每个矿石价格,创建一个具有矿石名称和价格的对象。

然后让这些对象中的每一个都从接口继承。

现在您有了一个集合,您可以使用它的名称和 LINQ 进行搜索。

那么在你的循环中你可以;

public void sellAllBut() {
Iterator<String> i = inventory.iterator();
while (i.hasNext()) {
  if (!i.next().equalsIgnoreCase("pickaxe")) {
    sellAllBut += ores.where(x => x.name == i).firstOrDefault();
    i.remove();
  }   
}

以上内容完全未经测试,但我认为您正在寻找的方法。如果您需要更多,或者即使这不是您想要的,请告诉我。

编辑

实际上,您不需要接口。

于 2013-09-25T00:17:56.550 回答