我有以下City
类。每个城市对象都包含一个字典,这些字段的关键字是语言标记(例如:“EN”,“DE”,“FR”...)以及哪些值是相应语言中的城市名称(例如:Rome/Rom等) 。通过对其容器的内联初始化将值添加到字典
public class City:
{
private IDictionary<string, string> localizedNames = new Dictionary<string, string>(0);
public virtual IDictionary<string, string> Names
{
get { return localizedNames ; }
set { localizedNames = value; }
}
}
大多数城市拥有的任何语言,以便City
构造函数实际上创建了英语映射相同的名字:
public City(string cityName)
{
this.LocalizedNames.Add("EN", cityName);
}
这里谈到的问题:有没有办法来添加其他值通过内联初始化?
我尝试以下无语义成功(没有编译)不同的变化:
AllCities.Add(new City("Rome") { Names["DE"] = "Rom" };
我也尝试创建一个新的解释,但是这显然将覆盖“EN”参数:
AllCities.Add(new City("Rome") { Names = new Dictionary<string, string>() { { "DE", "Rom" } } };
有人知道这是可能的吗?
注:*构造函数初始化*是不是合适的术语。认为**对象**和**集合**初始化,这两者都不是通过构造函数完成的。 –
你是对的,我编辑了标题,谢谢 –