我正在尝试创建一个从文件中读取的程序(我已经创建过)。
然后程序必须将上述文件与另一个文件进行比较(我也是这样)。
有人可以帮助我吗?我已经创建了必须读取第一个文件的部分。此外,我正在使用控制台应用程序,如果这有帮助。
答案 0 :(得分:1)
使用Enumerable.Except
的简单Linq方法产生集合差异:
var file1 = File.ReadAllLines(path1);
var file2 = File.ReadAllLines(path2);
var onlyInFileA = file1.Except(file2);
var onlyInFileB = file2.Except(file1);
foreach(string line in onlyInFileA)
{
// ...
}
foreach(string line in onlyInFileB)
{
// ...
}
请注意,您还可以比较不区分大小写。您只需使用Except
的重载:
var onlyInFileA = file1.Except(file2, StringComparer.OrdinalIgnoreCase);
答案 1 :(得分:1)
这是一个可能的直接解决方案:
String[] file1Lines = File.ReadAllLines(path1);
String[] file2Lines = File.ReadAllLines(path2);
for (int i = 0; i < Math.Max(file1Lines.Length, file2Lines.Length); i++)
{
if (i > file1Lines.Length)
/* missing from file 1 */ ;
else if (i > file2Lines.Length)
/* missing from file 2); */ ;
else if (file1Lines[i].Equals(file2Lines[i]))
/* lines are equal */ ;
else
/* lines are different */ ;
}