用 C# 编写的通用 Diff/Patch 工具






1.14/5 (11投票s)
用 C# 编写的通用 Diff/Patch 工具
引言
你是否曾经想要或需要一个针对 .NET 平台的优化过的差异比较工具?
本文提供了一个用 C# 编写的差异比较工具的实现。
它操作于泛型之上,因此你可以提供任何类型的列表来进行差异比较或修补,
包括字符串(例如文件中的行)、整数、对象,甚至是字节。
使用 Diff 类比较 2 个文本文件的示例
List<string> a = new List<string>(); List<string> b = new List<string>(); StreamReader fs1 = new StreamReader(argv[0]); StreamReader fs2 = new StreamReader(argv[1]); string line; while ((line = fs1.ReadLine()) != null) { a.Add(line); } while ((line = fs2.ReadLine()) != null) { b.Add(line); } fs1.Dispose(); fs2.Dispose(); Item[] diff_items = Diff2.Diff<string>(a.ToArray(), b.ToArray());
这执行差异比较。最后一个参数指示在执行差异比较时,实际差异是否应包含在编辑脚本中。