Pregunta

Estoy usando un HashSet<T> para almacenar una colección de objetos. Estos objetos ya tienen un identificador único de System.Guid, por lo que prefieren la HashSet<> sólo tiene que utilizar ese ID existente en lugar de tratar de averiguar cómo sí en Hash del objeto. ¿Cómo puedo reemplazar la estructura en hash y la fuerza de mi programa para utilizar la acumulación en el valor de identificación que el valor hash?

También digo que sé la Guid de un objeto en mi HashSet<>, ¿hay una manera de conseguir un objeto de una HashSet<T> en base a este Guid solo? O debería usar un diccionario en su lugar.

¿Fue útil?

Solución

A HashSet<> no se basa un par clave / valor, y no proporciona el acceso "por la tecla" - es sólo un conjunto de valores únicos, utilizando el hash para comprobar la contención muy rápidamente

.

Para usar un par clave / valor (a buscar a cabo por Guid más adelante) la opción más sencilla sería un Dictionary<Guid,SomeType>. El hash-código existente en Guid debe estar bien (aunque si necesitaba (No es aquí) puede proporcionar una IEqualityComparer<T> utilizar para hash.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top