我正在制作一个简单的库存控制台应用程序。
到目前为止,我有以下代码:
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()
方法来更改列表中的库存编号。
我的问题是,如何在控制台窗口中添加更新方法来更改列表中的库存数量?
在控制台中,我将输入产品名称和新的库存编号,并返回一个包含该产品更新的库存编号的新列表。
答案 0 :(得分:0)
我同意Stijn的评论。与ArrayList相比,Dictionary或List将是更好的解决方案-但如果您必须使用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...
}