如何将项添加到初始化为{blah = "asdf"}
本文关键字:quot blah asdf 添加 初始化 | 更新日期: 2023-09-27 17:52:34
如何为初始化的对象添加项:
object obj = new { blah = "asdf" };
如果我想添加另一个键值对,我该怎么做?
一旦使用该初始化器语法创建对象,就不能修改对象的匿名类型定义。也就是说,一旦你用{ blah = "asdf" }
初始化它,它就只有blah
的属性。不能再加了。这是因为匿名类型是静态类型。
对于dynamic
对象,ExpandoObject
回答工作。请看其他答案
如果你真的只是想管理一个键值对的集合(有点基于你表达问题的方式),使用字典。
var kvp = new Dictionary<string, string>
{
{ "blah", "asdf" }
};
kvp.Add("womp", "zxcv");
@BoltClock是正确的。另一种选择是使用ExpandoObject,但失去了智能感。
dynamic obj = new ExpandoObject();
obj.blah = "asdf";
// sometime later
obj.somethingelse = "dfgh";
// obj now has 'blah' and 'somethingelse' 'properties'
一旦定义了这样的对象,就完成了。你不能给它添加任何东西。
如果你使用c# 4.0,你可以使用动态类型:
dynamic obj = new ExpandoObject();
obj.blah = "asdf";
obj.blahBlah = "jkl;";