C# 数组创建

C# Array Creation

我无法弄清楚如何创建动态通用 ExpandoObject 元素数组。

我从这个声明开始,它有效:

/* WORKS */
dynamic expando = new ExpandoObject() as IDictionary<string,object>;

我想要的是一个由这样的对象组成的数组。我试过的语法是这样的:

/* DOES NOT WORK */    
var expandoArray = new ExpandoObject[] as IDictionary<string, object>
{
    new ExpandoObject() as IDictionary<string, object>,
    new ExpandoObject() as IDictionary<string, object>
};

我的想法是,在创建 expandoArray 之后,我可以通过使用这样的结构(参见 http://weblog.west-wind.com/posts/2012/Feb/01/Dynamic-Types-and-DynamicObject-References-in-C)将其元素作为动态引用:

dynamic expandoArrayDynamic = expandoArray[x];

所以,我的两个具体问题是: 1. 如何创建一个 Expando 数组作为 IDictionary 对象? 2. 如何将数组元素视为动态对象?

这是你想要的吗?

var expandoArray = new IDictionary<string, object>[]
{
    new ExpandoObject(),
    new ExpandoObject(),
};