15

C# でHashSetandを使用してグラフ構造を実装しています。キーがカスタマイズされたクラスである場合、要素Dictionaryの一意性に問題があります。ここに私が持っています:HashSetHashSet

public class Point
{
    public int x { get; set; }
    public int y { get; set; }
}

public class Vertex
{
    public Vertex(Point point)
    {
        VertexLabel = point;
    }

    public Point VertexLabel { get; private set; }
}

public class Edge
{
    public Edge(Vertex to, Vertex from, double weight)
    {
        FromVertex = from;
        ToVertex = to;
        Weight = weight;
    }

    public Vertex FromVertex { get; private set; }
    public Vertex ToVertex { get; private set; }
    public double Weight { get; private set; }
}

public class Graph
{
    public Graph()
    {
        _Vertexes = new HashSet<Vertex>();
        _VertexEdgeMapping = new Dictionary<Vertex, LinkedList<Edge>>();
    }
    private HashSet<Vertex> _Vertexes;
    private Dictionary<Vertex, LinkedList<Edge>> _VertexEdgeMapping;
}

問題は、同じ頂点があり、それらをグラフに追加したい場合、それらが重複することです。HashSetが頂点の一意性を理解する方法を定義するにはどうすればよいですか?

4

3 に答える 3