将c#数组添加到数组列表中

时间:2014-03-01 16:36:39

标签: c#

c#相当新,有点困惑......

我有一个类检索2个值并将它们放在一个数组中,然后我希望将该数组添加到列表中。

数组充当购买项目,列表将作为购物篮。

public void Add(int Id , int Quantity )
{
    int[] buying = new int[] { Id, Quantity };
    //AddTo(buying);

    List<int[]> arrayList = new List<int[]>();
    arrayList.Add(buying);
}

我只是坚持如何在不创建列表的新实例的情况下添加到列表中,并且还没有删除已添加的任何项目?

感谢您的帮助:)

5 个答案:

答案 0 :(得分:4)

然后你必须在其他地方拥有列表的实例,把它带到函数之外:)

List<int[]> arrayList = new List<int[]>();

public void Add(int Id , int Quantity )
{
    int[] buying = new int[] { Id, Quantity };
    //AddTo(buying);

    arrayList.Add(buying);
}

最好使用KeyValuePair而不是int []:

List<KeyValuePair<int, int>> arrayList = new List<KeyValuePair<int, int>>();
public void Add(int Id , int Quantity )
{
    KeyValuePair<int, int> buying = new KeyValuePair<int, int>(Id, Quantity);
    arrayList.Add(buying);
}

或者如果您不需要特定订单,最好使用词典:

Dictionary<int, int> list = new Dictionary<int, int>();

public void Add(int Id , int Quantity )
{
   list.add(Id, Quantity);
}

答案 1 :(得分:2)

所以你的问题是当函数结束时,不再可以访问arrayList。解决这个问题的一种方法是给出arrayList类的范围,另一种方法是将它发送给函数(在类或其他函数中声明)

public void Add(List<int[]> list, int Id , int Quantity )
{
    int[] buying = new int[] { Id, Quantity };

    list.Add(buying);
}

答案 2 :(得分:1)

在班级内定义你的名单?

List<int[]> arrayList = new List<int[]>();
public void Add(int Id , int Quantity )
{
    int[] buying = new int[] { Id, Quantity };
    //AddTo(buying);

    arrayList.Add(buying);
}

顺便说一下,您应该考虑使用包含IdQuantity属性的类。或者使用List<int[]>而不是Dictionary<int,int>,您可以使用密钥Id Value 1}}和Quantity是{{1}}。

答案 3 :(得分:0)

除了其他答案。如果您不希望列表中特定列表,则可以将列表作为参数传递给方法。

public void Add(int id, int quantity, List<int[]> container)
{
   int[] buying = new int[] { id, Quantity };
   container.Add(buying);
}

答案 4 :(得分:0)

两种方式

1。将列表的引用传递给此函数。

public void Add(List<int[]> arrayList, int Id , int Quantity )
{    
int[] buying = new int[] { Id, Quantity };
arrayList.Add(buying);
}

通过这种方式,您始终可以将项目添加到现有列表中。

2. 或者,此添加功能必须是类的一部分,例如XYZ。所以创建

  

列出arrayList;

作为该类的成员并使用以下代码段。

  

类XYZ {

     

列出arrayList;

     

public XYZ(){       this.arrayList = new List(); }

     

public void Add(List arrayList,int Id,int Quantity){

int[] buying = new int[] { Id, Quantity };
this.arrayList.Add(buying);   }
     

}