我有以下的
City
类。每个城市对象都包含一个字典,其中键为语言标签(比如:“EN”,“DE”,“FR”...),值是相应语言中的城市名称(例如:罗马/ 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" } } };
有人知道这是否可能吗?