2011-05-03 64 views
1

在C中,我可以在一個方法內使用下面的形式。2-dim結構表

void foo() { 
    struct { 
     int val; 
     int color; 
     string desc; 
    } ItemMap[] = { 
     { 1, 2, "test"}, 
     { 2, 3, "test"}, 
    } 

    // process tasks according to ItemMap. 
} 

如果我想在C#下做同樣的事情,如何實現它?

回答

8

你可以在C#中使用匿名類型爲:

var ItemMap = new[] { new { val = 1, color = 2, desc = "test" }, 
         new { val = 2, color = 3 , desc = "test" } }; 

string description = ItemMap[0].desc; 

但這會創建一個匿名類的一維數組,你不是一個結構 - 它也爲只讀。如果你特別需要一個可變結構/值類型,你將不得不在你的方法之外聲明該結構。

+0

這確實有幫助!非常感謝你。 – AechoLiu 2011-05-03 05:24:12