c#数组或集合

时间:2011-02-21 17:07:34

标签: c# arrays collections generic-collections

你会怎么做?我有一个数据列表,有两件事需要存储价格和项目,无论如何将数据存储在一个数组而不知道我将拥有的总行数?或者我应该使用一个集合,那些可以是多维的吗?

由于

4 个答案:

答案 0 :(得分:6)

是的 - 我建议您查看通用列表。使用此功能,您可以为数据建模并存储任意数量的项目。

例如

  public class PricedItem
    {
        public decimal Price { get; set; }
        public object Item { get; set; }
    }

然后可以在List<PricedItem&gt;中存储/检索这些内容。 - 或作为'定价商品清单'。

希望有所帮助

答案 1 :(得分:2)

听起来你应该使用“词典”泛型集合,例如项目ID作为键,价格作为值。

如果您想在集合中获得更多信息,您甚至可以在字典中存储项类的实例。因此,如果您的商品类具有ID,名称,描述,价格等属性,则可以执行

之类的操作
Dictionary<int, item> items = new Dictionary<int, item>();
items.add(myitem.id, myitem);

然后,对于任何商品ID,您都可以访问此类信息

string description = items[id].description; 
decimal price = items[id].price;

答案 2 :(得分:2)

使用包含价格和商品的某种复合类型的List<>。有一种称为KeyValuePair<>的内置结构类型,允许您存储强类型的键(项)和值(价格)。 List<KeyValuePair<string, string>>和一些Linq将允许您基于行,键或值执行查找。如果您想根据项目查找价格,则Dictionary是Key可访问的KeyValuePairs的集合,可以提供类似的功能但使用不同的内部结构,因此无法按行号访问。

答案 3 :(得分:0)

你可以

struct Item
{
    float Price;
    string ItemName;
}

List<Item> items = new List<Item>();
items.Add(new Item{Name="item1", Price=19.99});