J'ai une classe c'est - IComparable
:
public class a : IComparable
{
public int Id { get; set; }
public string Name { get; set; }
public a(int id)
{
this.Id = id;
}
public int CompareTo(object obj)
{
return this.Id.CompareTo(((a)obj).Srl);
}
}
Quand j'ajoute une liste d'objet de cette classe à un ensemble de hachage:
a a1 = new a(1);
a a2 = new a(2);
HashSet<a> ha = new HashSet<a>();
ha.add(a1);
ha.add(a2);
ha.add(a1);
Tout est beau et ha.count
est 2
, mais:
a a1 = new a(1);
a a2 = new a(2);
HashSet<a> ha = new HashSet<a>();
ha.add(a1);
ha.add(a2);
ha.add(new a(1));
Maintenant, ha.count
est 3
.
- Pourquoi ne peut -
HashSet
respectera
s'CompareTo
méthode. - Est -
HashSet
le meilleur moyen d'avoir une liste d'objets uniques?