我有我的自定义类的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