如何将项添加到初始化为{blah = "asdf"}

本文关键字:quot blah asdf 添加 初始化 | 更新日期: 2023-09-27 17:52:34

如何为初始化的对象添加项:

object obj = new { blah = "asdf" };

如果我想添加另一个键值对,我该怎么做?

如何将项添加到初始化为{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;";