У меня есть следующий класс 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" } } };
Кто-нибудь знает, возможно ли это?