QuickGraph - Как я могу связать Edge с классом? (то есть, как вы можете с вершины) - PullRequest
2 голосов
/ 27 апреля 2010

Q1 - Как я могу связать Edge с классом? (то есть, как вы можете с вершины)

В моем случае есть различные типы ребер, которые я хочу смоделировать. Так что мой реальный вопрос, который я предполагаю, заключается в том, как я могу связать некоторый уровень данных с краями (например, тип ребра).

График, на который я смотрел, был: http://quickgraph.codeplex.com/wikipage?title=BidirectionalGraph&referringTitle=Documentation

спасибо

Ответы [ 2 ]

4 голосов
/ 06 мая 2010

Ребро по умолчанию соединяет только две вершины на графике.Если вам нужна дополнительная информация, связанная с ребром (т. Е. «Отношения»), вы можете реализовать интерфейсы IEdge<T> или подкласс Edge<T>.Затем в своем пользовательском классе ребер вы можете сохранить информацию, относящуюся к этому ребру.

т.е.

public class MyEdge<TVertex> : Edge<TVertex>
{
    public string Name { get; set; }

    public MyEdge(TVertex source, TVertex target) : base(source, target)
    {
    }
}

... позже

var graph = new BidirectionalGraph<int, MyEdge<int>>();
3 голосов
/ 11 августа 2010

Вы также можете использовать класс TaggedEdge, который позволяет связывать произвольный объект с каждым ребром.

...