Visual Studio 在C#中可视化数据结构,如树和图[已关闭]

3yhwsihp  于 2023-03-03  发布在  C#
关注(0)|答案(1)|浏览(231)

我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
两年前关闭了。
这篇文章是4天前编辑并提交审查的。
Improve this question
我正在使用C#和LINQPad。我如何可视化图形和树?
例如,如果我创建一个树数据结构如下:

public class BinaryTree<T>()
{
    public T Value { get; set; }
    public BinaryTree<T> LeftChild { get; set; }
    public BinaryTree<T> RightChild { get; set; }
    
    //Other methods:
}

我想在执行程序时用一种简单的方式显示它,例如:

b1zrtrql

b1zrtrql1#

您最好的选择可能是使用Microsoft Automatic Graph Layout,这就是LINQPad用于语法树可视化工具的方法。
在LINQPad 5中,您只需添加对Microsoft.MSAGL.GraphViewerGDIGraph NuGet包的引用即可使用此库。

var graph = new Graph ("graph");

graph.AddEdge ("A", "B");
graph.AddEdge ("B", "C");
graph.AddEdge ("A", "C").Attr.Color = Microsoft.Msagl.Drawing.Color.Green;

new GViewer() { Graph = graph, ToolBarIsVisible = false }.Dump();

不幸的是,这在LINQPad 6(来自.NET Core 3.1)中不起作用,因为Microsoft.MSAGL.GraphViewerGDIGraph是一个.NET Framework包,它依赖于WinForms工具栏控件,而WinForms工具栏控件在.NET Core 3.1中已被删除。然而,MSAGL是开源的,删除依赖关系相当容易,正如我在这里所做的:
https://github.com/albahari/automatic-graph-layout

相关问题