Tag: 差异

文本比较/差异算法

是否有ac#library / algorithm来比较2个文本并显示它们的不同之处?

基本文件版本diff算法

我正在寻找一种解决方案来比较同一文件的两个版本,以获得变化/差异的表示。

两个大数字之间的差异C#

对于小数字,已经有解决这个问题的方法: 这里: 2个数字之间的差异 这里: C#函数找到两个数字的增量 这里: 如何在C#中找到2个值之间的差异? 我将总结所有人的答案: Math.Abs(a – b) 问题是当数字很大时,这会给出错误的答案(通过溢出)。 更糟糕的是,如果(a – b) = Int32.MinValue则Math.Abs因exception而崩溃(因为Int32.MaxValue = Int32.MinValue – 1 ): 发生了System.OverflowException 的HResult = 0x80131516 消息= 否定二进制补码数的最小值 无效 。 来源= mscorlib程序 StackTrace:在System.Math.Abs​​(Int32值)的System.Math.Abs​​Helper(Int32值)处 它的特殊性质导致难以重现的错误。 也许我错过了一些众所周知的库函数,但有没有办法安全地确定差异?

文本的C#Diff算法

我正在寻找一种差异算法,它将产生类似SO的编辑修订页面的结果。 我或多或少刚开始寻找,我不反对自己做,但我不需要重新发明轮子。 我将使用C#4.0。 我基本上有两个字符串,旧字符串和新字符串。 我想通过突出显示和突破来了解新增内容的变化。

使用c#有效识别CSV文件中已更改的字段

事实certificate这比我想象的要困难得多。 基本上,每天系统会将客户主列表的快照转储为CSV。 它包含大约120000条记录和60个字段。 大约25mb。 无论如何,我想报告一个快照与另一个快照之间发生变化的值。 它不是计划文件差异,因为它必须匹配包含客户唯一编号的最左侧列值。 可以插入/删除行等。所有字段都是字符串,包括参考编号。 我已经用LINQ编写了一个解决方案,但它随着更大的数据集而死亡。 对于10000条记录,需要17秒。 对于120000,比较这两个文件需要将近2个小时。 现在它使用优秀且免费的’filehelpers’http: //www.filehelpers.com/来加载数据,这只需要几秒钟。 但是检测哪些记录已经改变更成问题。 以下是2小时查询: var changednames = from f in fffiltered from s in sffiltered where f.CustomerRef == s.CustomerRef && f.Customer_Name != s.Customer_Name select new { f, s }; 你会推荐什么方法? 我想立即将列表“修剪”给那些有某种变化的人,然后将我更具体的比较应用于那个小子集。 我的一些想法是: a)使用字典或Hashsets-虽然早期的测试并没有真正显示出改进 b)区分操作 – 使用客户参考字段中的第一个字符,并仅与具有相同字符的字符匹配。 这可能涉及创建许多单独的集合,但似乎非常不优雅。 c)远离类型化数据安排并使用数组进行操作。 再次,利益不确定。 有什么想法吗? 谢谢!

C#比较算法

c#中是否有任何开源算法可以解决在两个文本文件之间产生差异的问题? 如果它有某种方式突出显示文本文档中更改的确切区域,那将是非常酷的。