Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

315
Vistas
¿Por qué el método Dictionary Add arroja una excepción cuando la clave ya está presente pero HashSet no?

Estoy tratando de entender el proceso de pensamiento detrás de esta decisión de diseño. También el tipo de retorno de Dictionary.Add es nulo. Sería bueno tener el mismo comportamiento para ambas estructuras de datos. ¿O hay algún caso de uso que haga que la implementación actual sea una mejor opción?

La clase HashSet se basa en el modelo de conjuntos matemáticos y proporciona operaciones de conjunto de alto rendimiento similares al acceso a las claves de las colecciones Dictionary<TKey,TValue> o Hashtable. En términos simples, la clase HashSet se puede considerar como una colección Dictionary<TKey,TValue> sin valores.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Estoy tratando de entender el proceso de pensamiento detrás de esta decisión de diseño.

Solo la persona o personas que realmente tomaron la decisión pueden proporcionar eso. Es poco probable que vean su pregunta aquí, aunque, por supuesto, esa posibilidad no se puede descartar.

¿Hay algún caso de uso que haga que la implementación actual sea una mejor opción?

Hay muchos casos de uso. Pero lo principal a tener en cuenta es que agregar el mismo objeto a un conjunto (como HashSet<T> ) que ya está en el conjunto no es destructivo, mientras que agregar la misma clave a un diccionario (como Dictionary<TKey, TValue> ) es destructivo, es decir, sobrescribe el valor existente.

Hacer que el método Add() devuelva un bool como HashSet<T> no sería útil; para cuando vea el valor false que se ha devuelto, el valor anterior de la clave ya se habrá reemplazado.

Dicho esto, tenga en cuenta que el indexador de diccionarios sobrescribirá el valor existente en silencio. De hecho, los diccionarios tienen exactamente la misma funcionalidad que HashSet<T> , además de la capacidad de evitar que se sobrescriba accidentalmente un valor que ya se almacenó.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda