Tengo la siguiente clase City
. Cada objeto de ciudad contiene un diccionario cuyas claves son etiquetas de idioma (digamos: "EN", "DE", "FR" ...) y qué valores son los nombres de las ciudades en los idiomas correspondientes (por ejemplo: Roma/Rom, etc.) .Agregar valores a un diccionario a través de la inicialización en línea de su contenedor
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; }
}
}
La mayoría de las ciudades tienen los mismos nombres que sea el idioma por lo que el City
constructor tiene realmente crea el mapeo Inglés:
public City(string cityName)
{
this.LocalizedNames.Add("EN", cityName);
}
Aquí viene la pregunta: ¿Hay una manera de añadir el otros valores a través de la inicialización en línea?
Probé diferentes variaciones de las siguientes acciones sin éxito semántica (no se compila):
AllCities.Add(new City("Rome") { Names["DE"] = "Rom" };
También probé la creación de un nuevo diccionario, pero esto obviamente sobrescribe el "ES" parámetro:
AllCities.Add(new City("Rome") { Names = new Dictionary<string, string>() { { "DE", "Rom" } } };
¿Alguien sabe si esto es posible?
Nota: * * inicialización del constructor no es la terminología apropiada. Piensa en la inicialización de ** objeto ** y ** colección **, ninguna de las cuales se realiza a través de un constructor. –
tiene razón, he editado el título, gracias –