如何定义没有大小的数组并添加项目?

时间:2014-05-13 09:53:14

标签: c# arrays

我想在c#中将以下数据添加到数组中,但我不知道数组的大小。 我已经搜索了很多问题,但所有数组的大小都是预定义的。

我不想定义数组的大小,因为数据将来自数据库运行时。

那么如何在C#中将以下数据添加到Array中?

 (Id : Value) 


    1 : 500 ,
    2 : 700 , 
    3 : 800 ,
    4 : 900 ,
    .
    .
    .
    Upto no of records into DB. 

我有以下代码,并希望将数据添加到数组,如下面的代码。

   foreach (var LocationObj in Location)
        {
           StockList.Add(InventoryDTO.Id, InventoryDTO.Quantity);
        }

不能使用字典,因为密钥可能是重复的。

想要2D List的简单代码......

4 个答案:

答案 0 :(得分:2)

好吧,如果在所有答案中人们都告诉你数组的大小必须预先定义,那就意味着必须预先定义数组的大小。

使用动态尺寸集合,例如List

答案 1 :(得分:2)

您可以使用List并将其转换为数组。

List<Location> StockList = new List<Location>();
// add some data
 foreach (var LocationObj in Location)
 {
     StockList.Add(InventoryDTO);
 }
// convert to array
var myArray = StockList.ToArray();

如果您的位置是唯一的,则应使用字典。

 Dictionary<int, Location> StockList= new Dictionary<int, Location>();
 foreach (var LocationObj in Location)
 {
     StockList.Add(InventoryDTO.Id, InventoryDTO.Quantity);
 }

更多信息

答案 2 :(得分:0)

使用List代替array

List<Location> Locations = new List<Location>();
// There is no need to specify a size
// Now you can add how many Location instances you need

修改:如果您需要存储多个值,请使用TupleList

// We assume Id and Quantity are integers
List<Tuple<int, int>> StockList = new List<Tuple<int, int>();
foreach (var LocationObj in Location)
    {
       StockList.Add(new Tuple<int, int>(InventoryDTO.Id, InventoryDTO.Quantity));
    }

答案 3 :(得分:0)

尝试ArrayList

ArrayList myAL = new ArrayList();
myAL.add("itemname");

结帐

http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx