有什么可用于.NET来获得两个字符串的差异?

时间:2010-04-28 20:41:36

标签: c# .net algorithm string diff

我正在寻找一种方法来确定两个字符串之间的差异,并在两个字符串中突出显示它们。

我怀疑大多数'diff'库不会起作用,因为它们显示出不同的行(我相信)。

算法或库都可以使用。

谢谢, 标记

4 个答案:

答案 0 :(得分:6)

DiffPlex可以处理许多不同类型的“行内”差异,包括字符和单词差异。我认为应该可以做你在这里要求的所有事情。

答案 1 :(得分:2)

从您的问题来看,您似乎拒绝使用现有程序并决定编写自己的程序,因为您认为现有程序无法在行内显示差异。

但是WinMerge可以显示行内差异。

这符合您的需求吗?或者你出于某种原因需要将它作为.NET组件吗?

答案 2 :(得分:1)

您可能希望查看使用Levenshtein distance或某些similar algorithm.对于Levenshtein算法的C#实现,请参阅here(如果您真的热衷于写作这个你自己)。

This question提出类似的问题,接受的答案指向一堆diff related projects。有很多很好的代码,这些代码绝对值得一看。

答案 3 :(得分:0)

String.Compare会起作用。如果你想比较单词,那么只需将初始字符串拆分成一个字符串数组并循环遍历它。