3

所以目前我有一个多维数组

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 个不同列表的性能?有没有诸如多维列表之类的东西?

感谢您的帮助

4

3 回答 3

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>();
于 2012-06-23T05:09:56.737 回答
3

凭借您将使用的大量数据,您真的不应该看到任何性能问题。

任何类型的 Collection,无论是List<T>, Dictionary<T, T>,IEnumerable<T>还是任何你想使用的,它都会为你提供比数组更多的功能。

于 2012-06-23T05:07:40.420 回答
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...
于 2012-06-23T05:13:52.493 回答