2014-03-01 58 views
0

相當新的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); 
} 

我只是停留在如何將添加到列表中,而無需創建一個列表的新實例,並有前丟失任何物品已經添加?

感謝所有幫助:)

+0

爲什麼你有數組而不是列表的列表清單? –

+0

您需要將數組定義爲類字段並將其添加到該字段中,或者立即在調用方中對其進行煩擾並將其傳入。 –

+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

在你的班級裏面定義你的列表?

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

    arrayList.Add(buying); 
} 

BTW,你應該考慮使用包含IdQuantity properties.Or而不是List<int[]>可以使用Dictionary<int,int>其中的關鍵是IdValueQuantity類。

2

所以你的問題是,當函數結束時,arrayList不再可訪問。解決方法之一是通過給ArrayList類範圍,另一種是將其發送給函數(類或另一個函數聲明)

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

    list.Add(buying); 
} 
0

除了其他的答案。如果您不希望列表中特別列出,則可以將列表作爲參數傳遞給方法。

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

兩種方式

要麼通過列表的引用這個功能。

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

在這種方式,你可以隨時添加項目到現有的一個列表。

2.或者,這個添加函數必須是XYZ類的一部分。所以創建

List arrayList;

作爲類的成員並使用以下代碼片段。

類XYZ {

列表的ArrayList;

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

公共無效添加(表ArrayList中,INT標識,詮釋數量){

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

}

+0

http://stackoverflow.com/editing-help –