Tengo una situación en el código donde un Dictionary<string, string>
me pareció la mejor idea: necesito una colección de estos objetos y necesito que sean accesibles a través de una clave única. Exactamente para qué es el concepto de diccionario, ¿verdad?C# Diccionario con dos valores por clave?
Bueno, los requisitos se han ampliado hasta el punto en que ahora necesito tener un bit adicional de información por clave (un valor booleano, si tiene curiosidad).
Por lo tanto, me imagino expandir el concepto para crear una nueva estructura de datos con la cadena y el booleano y que ahora sea un Dictionary<string, NewCustomObject>
.
Sin embargo, por solo un valor adicional como una bandera booleana, simplemente se siente como un exceso. Y, sin embargo, no conozco ningún objeto genérico parecido a un diccionario con dos valores por clave.
¿Acaso tener un diccionario de objetos personalizados es la mejor manera de hacerlo o hay algo más simple para este escenario?
Su primera idea de Dictionary no es una exageración en absoluto. Expresa la intención exacta, está fuertemente tipado, habilitado para intellisense, acomodará fácilmente el próximo cambio en los requisitos. –
@Oren Trutner: No puedo estar más de acuerdo. @Schnapple: no te molestes con un par, usa un objeto personalizado, con nombres bien definidos. Evite, por ejemplo, "Value1" y "Value2" para los nombres de los campos. Dales significado semántico. – Randolpho
No hay nada que se acerque a la "exageración" al crear nuevas clases en un idioma de OO. Bueno, generalmente no lo hay, y en este caso no es así. –