【发布时间】:2014-11-26 22:24:26
【问题描述】:
我正在尝试找到逐行比较两个文本文件的最快方法,将结果组合在一个多维数组中,并带有差异标志,例如:
array(0) (line1) (in file a) (in file b)
array(1) (line2) (in file a) (not in file b)
array(2) (line3) (not in file a) (in file b)
我知道如何为此编写自己的代码,但它很慢,所以我想知道是否有某种更快的 .NET 方法?目前在 VS2008 .NET 3.5 中工作,但可能会将项目移至 VS2013/15,因此任何最能胜任工作的框架都可以。
【问题讨论】:
-
数据集有多大? IE。每个文件有多少行?
-
还有……最好展示一下你拥有的东西并征求建议
-
您想知道file1 的lineX 是否与file2 中的lineX 完全相同,或者您想知道file1 的lineX 是否在file2 中的somewhere?
-
订单重要吗?意思是,如果你先将一个文件复制到另一个文件上,然后将其中一个文件的第一行移动到同一个文件的底部,然后比较,你会得到不同吗?
-
那你不想要diff,你想要一个简单的基于集合的算法,试试
ExceptLINQ Extension方法,即。fileA.Except(fileB)查看哪些行在fileA中但不在FileB中,然后反向。