我想做这样的事情:
dynamic eo = new ExpandoObject();
var line = sr.ReadLine();
if (line.Contains(":"))
{
var data = line.Split(':');
if (data.Length >= 2)
{
eo.data[0] = data[1];
}
}
即:添加一个名称位于此数组内的属性。
我得到:'System.Dynamic.ExpandoObject' does not contain a definition for 'data'
我想在运行时创建此属性:属性的名称必须与位于0位置的数据数组内的值的名称相同
答案 0 :(得分:5)
你的问题有点含糊不清,但是:
假设data[0]
包含字符串"hello"
而data[1]
包含字符串"world"
,我相信你要做的就是这个(伪代码):< / p>
eo.hello = world;
如果是这样,您只需将ExpandoObject
转换为IDictionary<string, object>
:
var dictionary = eo as IDictionary<string, object>;
dictionary.Add(data[0], data[1]);