QuickGraph,如何使用扩展方法StronglyConnectedComponents

时间:2011-09-13 12:44:22

标签: c# mono quickgraph

作为我第一次使用C#进行实验的一部分(在Mono 2.6.7上),我尝试使用QuickGraph中的StronglyConnectedComponents方法。这是我的代码:

using System;
using QuickGraph;
using QuickGraph.Data;
using System.Collections.Generic;
using QuickGraph.Algorithms;

namespace Graph
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            IVertexListGraph<int,Edge<int>> graph;
            graph = new AdjacencyGraph<int,Edge<int>>();
            IDictionary<int,int> components=new Dictionary<int,int>();  
            int noc = graph.StronglyConnectedComponents(out components);
        }
    }
}

当尝试编译上面的代码时,我收到错误消息(在MonoDevelop中):

Error CS1061: Type `QuickGraph.IVertexListGraph<int,QuickGraph.Edge<int>>' does not 
contain a definition for `StronglyConnectedComponents' and no extension method 
`StronglyConnectedComponents' of type 
`QuickGraph.IVertexListGraph<int,QuickGraph.Edge<int>>' could be found 
(are you missing a using directive or an assembly reference?) (CS1061) (Graph)

至于我从文档中可以看到,扩展方法应该可用:

public static int StronglyConnectedComponents<TVertex, TEdge>(
    IVertexListGraph<TVertex, TEdge> g,
    out IDictionary<TVertex, int> components
)

另外,我从QuickGraph中提到了所有三个.dll。我错过了什么?

1 个答案:

答案 0 :(得分:3)

好的,我刚刚检查过它,它在我目前拥有的Mono 2.10.5(Ubuntu)上适用于我,所以考虑更新。 2.6.7很老了。我刚下载了快速图表库,只引用了一个dll(QuickGraph.dll),对你的代码进行了复制(刚刚使用QuickGraph.Data删除),它编译运行没有任何问题。