net mvc funciona example como asp c# list hashset

mvc - ¿Cómo convertir la Lista<T> a HashSet<T> en C#?



hashset como funciona c# (3)

Asegúrate de que la clase de tu objeto invalida a Equals y GetHashCode y luego puedes pasar la List<T> al HashSet<T> .

var hashSet = new HashSet<YourType>(yourList);

Puede ver: ¿Cuál es el mejor algoritmo para un System.Object.GetHashCode invalidado?

Esta pregunta ya tiene una respuesta aquí:

Tengo una lista que tiene duplicados de objetos. Para resolverlo, necesito convertir la Lista en un HashSet (en C #). ¿Alguien sabe cómo?


Si su tipo implementa IEquatable<T> , Equals() y GetHashCode() correctamente, entonces no necesita hacer la desduplicación. Puedes usar Linq''s Distinct() para hacerlo así:

myList = myList.Distinct().ToList();


Una forma alternativa sería

var yourlist = new List<SomeClass>(); // [...] var uniqueObjs = yourlist.Distinct(); //Gives you a List with unique Objects of the List.

Tenga en cuenta que esto solo es posible si SomeClass anula GetHashCode y Equals de alguna manera. Esto también es cierto para

var uniqueObjs = new HashSet<SomeType>(yourOriginalList);

De lo contrario, podría implementar su propio IEqualityComnparer y pasarlo a distintas.

Tenga en cuenta que con el enfoque Distinct() , también puede buscar distintos valores de propiedad del objeto en la lista:

var uniqueNames = yourlist.Select(obj => obj.Name).Distinct();

y algo más...