2-dim结构表

Aec*_*Liu 1 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.
}
Run Code Online (Sandbox Code Playgroud)

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

Bro*_*ass 8

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

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

string description = ItemMap[0].desc;
Run Code Online (Sandbox Code Playgroud)

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