[英]Is it possible to alter an anonymous type?
这可能吗? 说您有以下几点:
var x = new { name = "name", age = 22 };
然后可以向该对象添加或添加属性吗? 因此,在以后的阶段中,我可以添加高度使其成为{ name = "name", age = 22, height = 1.9 };
。
只是寻找一种重铸方法或在新属性中添加一些东西而不必优雅。
不,这绝对不可能。 匿名类型是不可变的,并由其属性的名称和类型以及它们出现的顺序来精确定义。 添加新属性是另一种类型。
你可以匿名类型中做的最好的就是创建一个不同的匿名类型的实例:
var y = new { name = x.name, age = x.age, height = 1.9 };
(请注意, name =
和age =
不是必需的;编译器会为您推断它们。)
但是,实际上Dictionary<string, object>
如果您不在.NET 4.0中,则听起来好像是要dynamic
,还是要像Dictionary<string, object>
这样的属性包。
也许,也许是这样的具体类型:
public class Person {
public string Name { get; set; }
public int Age { get; set; }
public decimal? Height { get; set; }
}
请注意, height
为空。
为什么不创建一个新的匿名类型呢?
var x = new { name = "name", age = 22 };
var y = new { x.name, x.age, height = 1.9 };
也许ExpandoObject可以使用?
dynamic x = new ExpandoObject();
x.name = "name";
x.age = "22";
x.height = 1.9;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.