カスタムクラスの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;
}
}
そして今、私は2つのハッシュセットを持っています
HashSet<Vertex> hashSet1 = new HashSet<Vertex>();
HashSet<Vertex> hashSet1 = new HashSet<Vertex>();
そして今、hashSet1にhashSet2にない頂点だけを入れたいので、ExceptWithメソッドを使用します
hashSet1.ExceptWith(hashSet2);
しかし、これは機能しません。私は複雑なタイプを持っているので、これはうまくいかないと思います。したがって、問題は次のとおりです。これを機能させるには、Vertexクラスに実装する必要のあるインターフェイスがありますか?HashSetの作成中に、EqualityComparerを渡すことができることは知っていますが、Vertexクラスにいくつかの比較インターフェイスメソッドを実装する方がよりエレガントであるように思われます。
それは可能ですか、それとも私はsthを理解していませんか?
ありがとう。