【发布时间】:2018-03-23 03:34:39
【问题描述】:
我想比较两个 csv 文件并打印文件中的差异。我目前使用下面的代码来删除一行。我可以更改此代码以便比较两个 csv 文件还是在 c# 中有更好的方法来比较 csv 文件?
List<string> lines = new List<string>();
using (StreamReader reader = new StreamReader(System.IO.File.OpenRead(path)))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (line.Contains(csvseperator))
{
string[] split = line.Split(Convert.ToChar(scheidingsteken));
if (split[selectedRow] == value)
{
}
else
{
line = string.Join(csvseperator, split);
lines.Add(line);
}
}
}
}
using (StreamWriter writer = new StreamWriter(path, false))
{
foreach (string line in lines)
writer.WriteLine(line);
}
}
【问题讨论】:
-
如果您想找出added、deleted和changed行,请查看编辑距离 en.wikipedia.org/wiki/Edit_distance
-
我不能用那个。
-
你为什么这么难过?为什么你不能使用它?最简单的编辑距离(Levenshtein之一)很容易实现en.wikipedia.org/wiki/Levenshtein_distance
-
你真的不应该在你的代码中使用空的
if块。改变条件可以解决这个问题。 -
当两个 CSV 文件包含完全相同的数据但顺序不同时,您希望程序输出什么?另外,记录是否需要 100% 匹配?还是
1,Pete,2等于1,"Pete",2?