Возникли проблемы с добавлением метода update () в мое консольное приложение. - PullRequest
0 голосов
/ 06 декабря 2018

Я делаю простое консольное приложение для инвентаризации.
Пока у меня есть следующий код:

using System;
using System.Collections;

class Inventory
{
    string name;
    double cost;
    int onhand;

    public Inventory(string n, double c, int h)
    {
        name = n;
        cost = c;
        onhand = h;
    }

    public override string ToString()
    {
        return
          String.Format("{0,-10}Cost: {1,6:C}  On hand: {2}", name, cost, onhand);
    }
}

public class InventoryList
{
    public static void Main()
    {
        ArrayList inv = new ArrayList();

        // Add elements to the list 
        inv.Add(new Inventory("Pliers", 5.95, 3));
        inv.Add(new Inventory("Wrenches", 8.29, 2));
        inv.Add(new Inventory("Hammers", 3.50, 4));
        inv.Add(new Inventory("Drills", 19.88, 8));

        Console.WriteLine("Inventory list:");
        foreach (Inventory i in inv)
        {
            Console.WriteLine("   " + i);
        }

Я добавил этот код, чтобы добавить новый продукт в список.

        Console.WriteLine("\n");
        Console.WriteLine("Input New Inventory");
        Console.WriteLine("Name : ");
        string newName = Console.ReadLine();
        Console.Write("Cost : ");
        double newCost = Double.Parse(Console.ReadLine());
        Console.Write("Onhand : ");
        int newOnhand = Int32.Parse(Console.ReadLine());

        inv.Add(new Inventory(newName, newCost, newOnhand));

        Console.WriteLine("\n");
        Console.WriteLine("Inventory List:");
        foreach (Inventory i in inv)
        {
            Console.WriteLine("" + i);
        }
        Console.WriteLine("\n")
    }
}

Я не могу понять, как добавить метод update() для изменения номера запаса в списке.

У меня вопрос, как добавить обновление?способ изменить номер запаса в списке, находясь в окне консоли?
В консоли я бы ввел название продукта и новый номер запаса, чтобы получить новый список с обновленным номером запаса для продукта.

1 Ответ

0 голосов
/ 06 декабря 2018

Я согласен с комментарием Стейна.Словарь или список будет лучшим решением, чем ArrayList, но если вы должны использовать ArrayList - вы можете написать функцию для возврата индекса и использовать ее для обновления вашего ArrayList:

    private static int GetIndex(string name, ArrayList inv)
    {
        for (var i = 0; i < inv.Count; i++) 
        {
            if (((Inventory)inv[i]).Name.Equals(name))
            {
                return i;
            }
        }

        return -1; 
    }

Тогда в основном:

        var index = GetIndex("Drills", inv);
        if (index >= 0)
        {
            ((Inventory)inv[index]).StockNumber = 15; // Or whatever...
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...