2-dim结构表

时间:2011-05-03 04:02:15

标签: c# c visual-studio-2010

在C中,我可以在方法中使用以下形式。

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

   // process tasks according to ItemMap.
}

如果我想在C#下做同样的事情,如何实现呢?

1 个答案:

答案 0 :(得分:8)

您可以在C#中使用匿名类型:

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

string description = ItemMap[0].desc;

然而,这将为您创建一个匿名类的一维数组,而不是结构 - 也是只读的。如果您特别需要一个可变的结构/值类型,则必须在方法之外声明结构。