我有我的自定義類的HashSet的:ExceptWith在HashSet的複雜類型
public class Vertex
{
public string Name;
public override bool Equals(object obj)
{
var vert = obj as Vertex;
if (vert !=null)
{
return Name.Equals(vert.Name, StringComparison.InvariantCulture);
}
return false;
}
}
現在我有拖hashsets
HashSet<Vertex> hashSet1 = new HashSet<Vertex>();
HashSet<Vertex> hashSet1 = new HashSet<Vertex>();
現在我想在hashSet1只有頂點是未在hashSet2 於是我就用ExceptWith方法
hashSet1.ExceptWith(hashSet2);
但是,這是行不通的。 我想這是行不通的,因爲我有複雜的類型。 所以問題是:是否有一些需要在Vertex類中實現的接口來使這件事情起作用? 我知道雖然創建HashSet I可以傳遞EqualityComparer,但在我看來,在Vertex類中實現一些比較接口方法會更優雅。
有可能或者我只是不明白......嗎?
謝謝。
http://msdn.microsoft.com/en-us/library/ms173147%28v=vs.80%29.aspx – 2013-03-16 15:01:16