我应该使用清单吗?

时间:2012-06-23 05:04:43

标签: c# asp.net arrays list multidimensional-array

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

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个不同的名单?有没有像多维列表那样的东西?

感谢您的帮助

3 个答案:

答案 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...