从文件中读取并比较他们的数据

时间:2013-01-21 20:38:21

标签: c#

我正在尝试创建一个从文件中读取的程序(我已经创建过)。

然后程序必须将上述文件与另一个文件进行比较(我也是这样)。

有人可以帮助我吗?我已经创建了必须读取第一个文件的部分。此外,我正在使用控制台应用程序,如果这有帮助。

2 个答案:

答案 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 */ ;
}