Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

316
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda