2014-02-20 49 views
0

我在c#中編寫代碼,我使用結構列表,但是如何添加到結構列表中,我使用添加來添加xx,yy,大小但不正確?我只需要方法將數據添加到列表結構如何將結構列表添加到c#中

public struct blocks 
{ 
    public Int32 xx; 
    public Int32 yy; 
    public Int32 size; 
}; 

namespace test2 
{ 

    class Program 
    {   
    static List<blocks> blocks1 = new List<blocks>(); 
    static void Main(string[] args) 
    {  
     Int32 index=0; 

     for (int y = 1; y < 5; y++) 

       for (int x = 1; x < 5; x++) 
       { 
        blocks1[index].xx +=(x * 2); // store start point (x) of block 
        blocks1[index].yy += (y *2); // store start point (y) of block 
        blocks1[index].size +=(2); // store block size 
        index++; 
       } 
    } 
    } 
} 
+0

在你的例子中「blocks1」是一個數組,因此你不能做「blocks1.xb.Add(x * 2);」。可能您正在嘗試執行「blocks1 [index] .xb.Add(x * 2);」但是xb是一個int,所以沒有Add方法直接可用於xb。所以可能你試圖做「blocks1 [index] .xb + =(x * 2);」你還沒有定義「索引」。請這樣做,以便我們能夠理解你想要達到的目標。用這些信息更新的問題會更好。 – samar

+0

@ samar,我更新我的問題 – user3226824

回答

1

這是你想大概是什麼實現,但不是很確定。如果這不是你需要的話,請用更新的信息的問題,按照我的意見

public struct blocks 
{ 
    public Int32 xb; 
    public Int32 yb; 
    public Int32 size; 
}; 

namespace test 
{ 

    class Program 
    { 
     static List<blocks> blocks1; 
     static void Main(string[] args) 
     { 
      blocks1 = new List<blocks>(); 
      for (int y = 1; y < 5; y++) 
      { 
       for (int x = 1; x < 5; x++) 
       { 
        blocks newBlock = new blocks(); 

        newBlock.xb = x * 2; 
        newBlock.yb = y * 2; 
        newBlock.size = 2; 

        blocks1.Add(newBlock); 
       } 
      } 
     } 
    } 
} 

希望這有助於。

+0

@ samar,非常感謝您的幫助 – user3226824

4

我會用一個List<blocks> blocks1 = new List<blocks>(),因爲這是一種數據結構,只需將它添加到需要。

您可以添加到它,像這樣:

blocks newBlock = new blocks(); 
blocks1.Add(newBlock) ; 
+0

謝謝,但我怎麼能添加到列表我寫blocks1.xb.Add(x * block_size);但不正確? – user3226824

+0

我已經添加了一個如何添加到列表中的示例 – TGH

+0

好吧,我不明白如何添加元素xb,yb,大小列表結構,我更新我的問題 – user3226824