在C#中查找文本差异并使用它们将文本还原为以前的状态

时间:2011-03-01 19:16:43

标签: c# .net string text

你知道用C#编写的或用.NET编译的任何库,我可以用它来查找两个字符串之间的差异(插入的内容和已删除的内容)然后使用此差异将文本还原为原始状态(而不是必须保存原始文本的副本)?

3 个答案:

答案 0 :(得分:2)

您正在寻找的是解决Longest Common Subsequence问题的问题。有商业图书馆可以实现这一点,但您可以找到一个可以在CodeProject上使用或改编的免费版本:http://www.codeproject.com/KB/recipes/DiffAlgorithmCS.aspx

如果您对此类算法的核心实施感兴趣,也可以在Wiki Books Algorithms上找到它。

答案 1 :(得分:1)

你基本上是在寻找类似diff实用程序的东西,但在C#中?

你可以尝试改编其中一种:

http://www.codeproject.com/KB/cs/differ.aspx

http://www.codeproject.com/KB/files/CsLCSDiff.aspx

http://www.codeproject.com/KB/recipes/diffengine.aspx

答案 2 :(得分:0)

您应该了解源代码管理,它可以将此功能作为满足您要求的系统的一部分。

Subversion易于理解,其Windows客户端用户友好。

最近我开始使用Git,因为它看起来很有趣,而且我喜欢它适用于团队的方式。

此外,WinMerge是一种在SCM环境之外完成您想要的工具。