首页 > 其他分享 >适用于 .NET 的开源文本差异对比组件

适用于 .NET 的开源文本差异对比组件

时间:2023-03-03 12:35:27浏览次数:56  
标签:ForegroundColor Console var 开源 组件 NET 文本 DiffPlex

适用于 .NET 的开源文本差异对比组件

DotNet大王 DotNet大王 源码资料,微信zhaoxi965,有问必复  

对于开发人员来说,Git 是我们经常使用的工具,在每次编写完代码并提交后,我们可以通过 git diff 来对比不同版本之间的代码的差异,当然也可以借助一下开发工具, 这样可以让我们很直观的看到修改了哪里? 不同版本之间有什么不同?这样也可以很方便的来做 code review。

临时加更干货分享

大家能看到这里,已是对我们的支持了。分享一组9月录制的C#零基础教程。我们喜欢做这样的分享,它足够的基础,对新手友好。如果需要的话,就来免费领取吧!

快来领取吧

资料免费自取:

由于内容过多不便呈现,需要视频教程和配套源码的小伙伴,点击下方卡片!

    可点击这里,我知乎主页个人说明处自取资料 免费分享  

也可点击下方卡片:点击后自动复制威芯号,并跳转到威芯。搜索威芯号添加,内容已做打包,备注知乎

即可免费领取,注意查收!

    点击卡片,复制微信号添加 免费领取干货  

如果让你自己实现一个这样的功能,你会怎么做呢?下面介绍一个组件库,希望能够帮助到你。

DiffPlex 是一个使用 C# 开发的开源文本差异对比组件,支持在控制台、Web、Winform、WPF 项目中使用。

小试牛刀

首先,使用 Nuget 安装 DiffPlex 组件。

添加以下代码, before 为修改前文字,after 为修改后文字。

using DiffPlex.DiffBuilder.Model;
using DiffPlex.DiffBuilder;

var before = $@"
春种一粒粟,
秋收万颗子。
四海无闲田,
农夫犹饿死。
";

var after = $@"
春种一粒粟,
秋收万颗子。
谁知盘中餐,
粒粒皆辛苦。
";

编写以下代码,进行文字对比。

var diff = InlineDiffBuilder.Diff(before, after);

var savedColor = Console.ForegroundColor;
foreach (var line in diff.Lines)
{
    switch (line.Type)
    {
        case ChangeType.Inserted:
            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("+ ");
            break;
        case ChangeType.Deleted:
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write("- ");
            break;
        default:
            Console.ForegroundColor = ConsoleColor.Gray;  
            Console.Write("  ");
            break;
    }

    Console.WriteLine(line.Text);
}
Console.ForegroundColor = savedColor;

下图中在控制台输出了文本的差异。

DiffPlex 项目中还包含一个示例网站,展示了如何在 ASP MVC 网站中创建基础的文本对比差异。

DiffPlex 还支持在 WinUI 3, WPF, Winform 中直接使用,如下

发布于 2022-12-09 12:23・IP 属地湖北

标签:ForegroundColor,Console,var,开源,组件,NET,文本,DiffPlex
From: https://www.cnblogs.com/sexintercourse/p/17175162.html

相关文章