c# - 为对象属性分配值

标签 c#

有更快的方法来执行以下操作吗?想要减少代码行数。

var item = new SpecialObject();
var dictionary = new Dictionary<string, object>();
dictionary.Add("key1", "value1");
dictionary.Add("key2", "value2");

item.Name = "name";
item.Id = 1;
item.Dictionary = dictionary;


谢谢..

最佳答案

您可以使用对象初始化程序:

var item = new SpecialObject
{
    Id = 1,
    Name = "name",
    Dictionary = new Dictionary<string, object>{
    {    
        {"key1", "value1"},
        {"key2", "value2"}
    }
}


编辑评论:

或使用构造函数,但我认为这不太可读:

调用代码:

var item = new SpecialObject(1, "name", new Dictionary<string, object>{
        {"key1", "value1"},
        {"key2", "value2"}
});


ctor:

public SpecialObject(int id, string name, IDictionary<string, object> dict)
{
    this.Id = id;
    this.name = Name;
    this.Dictionary = dict;
}

关于c# - 为对象属性分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3676080/

相关文章:

c# - .NET 调用将 [enter] 击键发送到当前进程,这是一个控制台应用程序?

c# - 流阅读器无法将文本从文件文本获取到文本框

c# - 如何从其他数据表创建具有列结构的新数据表?

c# - 为什么 jquery 日期选择器会改变几个月的日期?

c# - 将 C# 2.0 System.Data.SqlTypes.SqlXml 对象转换为 System.Xml.XmlNode

c# - 在控制台中显示来自 ILogger<Class> 日志关键的日志对象

c# - 目录监控

c# - 单元测试的模拟对象

c# - 在调试器中跳过表达式主体属性

c# - 我应该重用作为参数传递的集合吗