所以目前我有一个多维数组
string[,] items = new string[100, 4];
然后我收集所需的输入以将它们放入数组中,然后将它们显示在列表框中
items[itemcount, 0] = id;
items[itemcount, 1] = newprice;
items[itemcount, 2] = quant;
items[itemcount, 3] = desc;
listBox1.Items.Add(items[itemcount, 0] + "\t" + items[itemcount, 3] + "\t " + items[itemcount, 2] + "\t " + items[itemcount, 1]);
listBox1.SelectedIndex = listBox1.Items.Count - 1;
那么用户可以根据需要从列表框中选择一个项目来删除该项目。在删除项目时,我意识到阵列不合适。所以我应该创建4个不同的列表并使用list.Remove方法删除它们或者是否有更好的方法我不需要处理4个不同的东西,用户也在运行使用WinXP的旧计算机我不得不担心表现有4个不同的名单?有没有像多维列表那样的东西?
感谢您的帮助
答案 0 :(得分:7)
您正在尝试重新创建类的实例列表。像
这样的东西class Item {
public int Id {get;set;}
public double Price {get;set;}
public double Quantity {get;set;}
public string Description {get;set;}
}
var myItems = new List<Item>();
答案 1 :(得分:3)
根据您将要使用的数据量,您实际上不应该看到任何性能问题。
任何类型的集合,无论是List<T>
,Dictionary<T, T>
,IEnumerable<T>
还是您想要使用的任何类型,它都将为您提供比数组更多的功能。
答案 2 :(得分:2)
看起来你有一个复杂的类型,你应该放入一个列表。不确定名称是否正确,但这样的东西看起来就像你想要的那样。
public class InventoryEntry
{
public string Id {get;set;}
public double NewPrice {get;set;}
public int Quantity {get;set;}
public string Description {get;set;}
public override ToString()
{
//return your specially formatted string here
}
}
var items = new List<InventoryEntry>();
//add some items
//add them to your listbox
//etc...