2011-06-25 60 views
1

我想有2個Int32值的數組,說:如何製作一個int數組列表?

Int32 x 
Int32 y 

我要讓這些陣列的列表。

  • 如何聲明並初始化這個數組和列表?
  • 一旦我填充它,我如何訪問列表中的成員?

回答

6

這聽起來像你正試圖將一個數組轉換成一個數據結構,它不是通過順序存儲的值。不要這樣做。瞭解如何使用更高級的數據結構以獲得優勢。

您提到了一個Point類型,其值爲xy。如何改變班級?

class Point 
{ 
    public readonly int X; 
    public readonly int Y; 
    public Point(int x, int y) 
    { 
     X = x; 
     Y = y; 
    } 
} 

現在,您可以創建新類型的實例,並將它們添加到列表中,簡化了整個過程,並確保你沒有滑倒在路上,並添加x到您的數組,其中一個y應該。

List<Point> ls = new List<Point>(); 
ls.Add(new Point(0, 0)); 
ls.Add(new Point(10, 10)); 
ls.Add(new Point(100, 100)); 

不管怎麼說,閱讀關於如何在C#中創建自己的數據結構是個好主意。學習如何以易於使用的方式適當存儲數據有很多好處。

+1

對於某個點,一個'struct'可能比'class'更合適。 – icktoofay

+1

@icktoofay:我在等人說這=)。我真的不想進入值類型與參考類型。 OP顯然是一個初學者。我認爲最好展示一個儘可能簡單的例子,因爲他需要採取下一步措施,並在更深層次上自行了解這些內容。 –

8
List<int[]> l = new List<int[]>(); 

l.Add(new int[] { 1, 2 }); 
l.Add(new int[] { 3, 4 }); 

int a = l[1][0]; // a == 3 
+0

如果你真的在使用x和y作爲兩個整型數組。您可以使用現有的課程或創建自己的課程。然後你可以使用一個列表或者列表 Spidy

2

沒有你喜歡什麼相當足夠的信息。但這裏有一個初始化Int32數組通用列表的基本示例。我希望這有助於

 Int32 x = 1; 
     Int32 y = 2; 

     // example of declaring a list of int32 arrays 
     var list = new List<Int32[]> { 
      new Int32[] {x, y} 
     }; 

     // accessing x 
     list[0][0] = 1; 

     // accessing y 
     list[0][1] = 1; 
1

使用的是隻包含兩個INT32元組的列表:

List<Tuple<int, int>> myList = new List<Tuple<int, int>>(); 

var item = new Tuple<int, int>(25, 3); 

myList[0] = new Tuple<int, int>(20, 9);//acess to list items by index index 

myList.Add(item);//insert item to collection 

myList.IndexOf(item);//get the index of item 

myList.Remove(item);//remove item from collection 

使用List<Tuple<int, int>>在第二列表像List<List<int, int>>List<int[]>的好處是,你明確的力列表項目只是兩個整數。

1

那麼,有兩種類型的數組。多維數組和鋸齒形數組。你可以使用(更多在他們的差異在http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx)。

交錯數組的一個例子:

Int32[][] = new Int32[] { new Int32[] {1,2}, new Int32[] {3,4}}; 

多維數組的一個例子:

Int32[,] = new Int32[,] {{1,2},{3,4}}; 

希望幫助明確了一點東西。如果你的意思是實際列表,那麼看看其他答案。

相關問題