Estoy creando un objeto Dictionary, utilizando IEnumerable
's método ToDictionary()
extensión:¿Cómo se obtiene la clave duplicada que ToDictionary() ha fallado?
var dictionary = new Dictionary<string, MyType>
(myCollection.ToDictionary<MyType, string>(k => k.Key));
Cuando se ejecuta, que arroja el siguiente ArgumentException
:
un elemento con la misma clave ya ha sido adicional.
¿Cómo consigo que me diga cuál es la clave duplicada?
Esta no es una respuesta a su pregunta, pero ToDictionary realmente crea un diccionario. ¿Por qué pasas ese diccionario al constructor de otro diccionario? ¿Y por qué especificar los parámetros genéricos de tipo que no es necesario? Escribiría su ejemplo sin todo ese bagaje como: 'var dictionary = myCollection.ToDictionary (x => x.Key);' –
1. Porque esa es una de las sobrecargas del constructor para Dictionary. Pero tienes un punto. –
2. Presumiblemente, especificar los tipos elimina cualquier posibilidad de boxeo, pero no estoy seguro de eso. –