C# 它是一个锯齿状数组声明吗?

C# 它是一个锯齿状数组声明吗?,c#,.net,arrays,C#,.net,Arrays,你能给我解释一下元素数组声明背后的语法吗?这是锯齿阵列吗?在这种情况下,值和类型是什么 enum Color{Red=1,Green,Blue} 枚举主题{Dark=1,Light,NotSure} 公共静态void Main(字符串[]args) { var元素=新[] { 新的{Value=1,Type=typeof(Color)}, 新的{Value=2,Type=typeof(主题)}, 新的{Value=3,Type=typeof(Color)}, 新的{Value=1,Type=ty

你能给我解释一下
元素
数组声明背后的语法吗?这是锯齿阵列吗?在这种情况下,
值和
类型是什么

enum Color{Red=1,Green,Blue}
枚举主题{Dark=1,Light,NotSure}
公共静态void Main(字符串[]args)
{
var元素=新[]
{
新的{Value=1,Type=typeof(Color)},
新的{Value=2,Type=typeof(主题)},
新的{Value=3,Type=typeof(Color)},
新的{Value=1,Type=typeof(主题)},
新的{Value=2,Type=typeof(Color)},
};
foreach(元素中的var元素)
{
var enumValue=Enum.ToObject(element.Type,element.Value);
Console.WriteLine($“{element.Type.Name}({element.Value})={enumValue}”);
}
}

让我们从内部到外部:
元素
数组的项

   new { Value = 1, Type = typeof(Color) }
是匿名类型实例(具有两个属性:
Value
类型
int
type
类型
type
);有关详细信息,请参阅

元素
数组

   var elements = new[] {
     new { Value = 1, Type = typeof(Color) },
     new { Value = 2, Type = typeof(Theme) },
     ... 
   };
是此类匿名类型实例的简单1d数组

这是锯齿阵列吗

不是。它是匿名对象的一维数组

在这种情况下,
值和
类型是什么


匿名类的属性。

元素
是匿名类型实例的数组,但它只是一个简单的一维数组-它既不是数组数组(锯齿数组),也不是多维(矩形)数组。回答得好。我想补充一点,数组声明之所以有效,是因为编译器将所有单个元素解释为相同的匿名类型,因为它们具有相同类型的相同属性。