Q1 - 如何将 Edge 与 Class 关联?(即就像你可以使用顶点一样)
就我而言,我希望能够建模各种类型的边缘。所以我想我真正的问题是如何将某些级别的数据与边缘(例如边缘类型)相关联。
我正在查看的图表是:http: //quickgraph.codeplex.com/wikipage ?title=BidirectionalGraph&referringTitle=Documentation
谢谢
Q1 - 如何将 Edge 与 Class 关联?(即就像你可以使用顶点一样)
就我而言,我希望能够建模各种类型的边缘。所以我想我真正的问题是如何将某些级别的数据与边缘(例如边缘类型)相关联。
我正在查看的图表是:http: //quickgraph.codeplex.com/wikipage ?title=BidirectionalGraph&referringTitle=Documentation
谢谢
默认情况下,一条边仅连接图上的两个顶点。如果您需要与边缘相关的更多信息(即“关系”),您可以实现IEdge<T>
接口或子类Edge<T>
。然后,在您的自定义边缘类中,您可以存储与该边缘相关的信息。
IE
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>>();
您还可以使用 TaggedEdge 类,它允许您将任意对象与每条边相关联。