需求
> 💡 基于C#语言,获取dot文件内图谱所包含的节点、边等信息 >
- 获取到的节点、边等数据可以利用QuickGraph构建图,从而进行增删改查等操作
方法过程
- 在Visual Studio平台(版本越新越好)新建一个C#项目,然后利用NuGet程序库中分别下载并安装以下四个依赖包。

上图中,依赖库FSharpx.Core(1.8.41)是依赖库DotParser运行所需要的,但是VS平台上没有相关版本,只能通过网上搜索下载后再一次利用NuGet安装本地库的方式安装。FSharpx.Core(1.8.41)的下载网址是:https://www.nuget.org/packages/FSharpx.Http
- 按照以下代码即可读取dot文件并得到相关节点和边信息
csharp
string dotFileContent = File.ReadAllText(@"D:\MyEssay\SecondValley\FaultReconstruct\FaultStudyData\QinglongMountain\Graph\strata2.dot");
GraphData graphData = DotParser.DotParser.parse(dotFileContent);
var edges = graphData.Edges;
int ctt = edges.Count;
var nodes = graphData.Nodes;
int ctt2 = nodes.Count;
DotParser读取dot文件时,要求文本内不应出现/、<等特殊字符,如果存在则需要删除后重新读取。
- 利用QuickGraph重新组织图即可
csharp
var graph22= new AdjacencyGraph<string, Edge<string>>();
foreach (var item in nodes)
{
graph22.AddVertex(item.Key);
}
foreach (var edge in edges)
{
string sourceId = edge.Key.Item1; // 源节点
string targetId = edge.Key.Item2; // 目标节点
// 确保节点存在
if (!graph22.ContainsVertex(sourceId))
graph22.AddVertex(sourceId);
if (!graph22.ContainsVertex(targetId))
graph22.AddVertex(targetId);
Edge<string> edge2 = new Edge<string>(sourceId, targetId);
// 添加边
graph22.AddEdge(new Edge<string>(sourceId, targetId));
}