一些词典,"key1" = "Value1, "key2" = "Value2", ...
。
我需要创建一个对象
{
key1 : "Value1",
key2 : "Value2",
...
}
答案 0 :(得分:1)
您无法在运行时创建匿名类型的对象。虽然匿名类型是匿名的,但它们是静态类型,即它们的成员在编译时是已知的。除非你的字典的所有键和值在编译时都是已知的(这实际上违背了目的),否则你不能从字典中创建一个静态类型。
下一个最接近的事情是将dynamic
类型与ExpandoObject
一起使用:
dynamic obj = new ExpandoObject();
var tmp = (IDictionary<string,object>)obj;
foreach (var p in dict) {
tmp[p.Key] = p.Value;
}
现在你可以写
了Console.WriteLine("{0} {1}", obj.key1, obj.key2);
只要dict
cntains键key1
和key2
,就会编译并运行。