LINQ, создание уникальной коллекции коллекции

У меня

class Vertex{
    Graph _graph;
    float x;
    float y;
    string key;
    //and some similar atributes
    public IEnumerable<Edge> Edges{
        get{
            return _graph.Edges.Where(s => s.Source == this);
        }
    }
}
class Edge{
    Graph _graph;
    Vertex source;
    Vertex target;
}
class Graph
{
    private VertexCollection _vertexCollection; // extends List<Vertex>
    private EdgeCollection _edgeCollection; //extends List<Edge>
    public IEnumerable<Vertex> Vertexes
    {
        get
        {
            return _vertexCollection;
        }
    }
    public IEnumerable<Edge> Edges
    {
        get
        {
            return _edgeCollection;
        }
    }
    public IDictionary<Edge, bool> DrawableEdges
    {
        get
        {
            //want to return my uniq dictionary
        }
    }    

Edgesи Vertexesсобраны в списки

Пример:

A-->B // edge from vertex A to B
B-->C // edge from vertex B to C
C-->A // edge from vertex C to A
A-->C // edge from vertex A to C  -- this is two way edge

Итак, я хотел бы сделать IDictionary<Edge, bool>, который будет содержать ребра (A -->B и B -->A будет как 1 ), и bool -, если он двухсторонний или нет.

Мне это нужно, потому что, когда я рисую их сейчас, они рисуют 2 стрелки друг под другом. Я бы лучше сделал 1 стрелу.

Так что тут я совсем застрял... Кто-нибудь может мне немного помочь?

6
задан Wish 27 March 2012 в 17:33
поделиться