C# 比较两个编号相同的文件行

C# 比较两个编号相同的文件行,c#,file,comparison,C#,File,Comparison,我有两个文件:file1.txt和file2.txt file1.txt内容 this is line 1 this is line 1 this is line 3 this is line 1 this is line 2 this is line 4 file2.txt内容 this is line 1 this is line 1 this is line 3 this is line 1 this is line 2 this is line 4 我要做的是比较

我有两个文件:file1.txt和file2.txt

file1.txt内容

this is line 1

this is line 1

this is line 3
this is line 1

this is line 2

this is line 4
file2.txt内容

this is line 1

this is line 1

this is line 3
this is line 1

this is line 2

this is line 4

我要做的是比较file1.txt中的第1行和file2.txt中的第1行,以此类推。如果两行内容不同,则仅回显file2.txt中的行

这是到目前为止我的代码

int line_number = 0;
string line_file1, line_file2;

System.IO.StreamReader file2 = new System.IO.StreamReader("file2.txt");
System.IO.StreamReader file1 = new System.IO.StreamReader("file1.txt");

while (((line_file2 = file2.ReadLine()) != null) && ((line_file1 = file1.ReadLine()) != null))
{
    if (line_file2 != line_file1)
    {
        Console.WriteLine(line_file2);
    }
    line_number++;
}

file2.Close();
file1.Close();
这将产生:

this is line 2

this is line 4

如果您知道解决方案或更好的方法,请告诉我。

假设您想比较文件1的第1行和文件2的第1行,依此类推

您可以使用
File.ReadAllLines()
方法读取给定路径中的所有行

试试这个:

using System.IO; //import this namespace. 


String[] strFile1 = File.ReadAllLines("file1.txt");
String[] strFile2 = File.ReadAllLines("file2.txt");

if (strFile1.Length == strFile2.Length)
{
    for (int i = 0; i < strFile1.Length; i++)
    {
        if (strFile1[i] != strFile2[i])
        {
            Console.WriteLine(strFile2[i]);
        }
    }
}
使用System.IO//导入此命名空间。
字符串[]strFile1=File.ReadAllLines(“file1.txt”);
字符串[]strFile2=File.ReadAllLines(“file2.txt”);
if(strFile1.Length==strFile2.Length)
{
for(int i=0;i
您的解决方案有什么问题?您的读者应该使用,真正处于一个
中,但除此之外,它看起来还不错。请将文件1中的第1行与文件2中的第2行进行比较。这不是比较文件1中的第1行和文件2中的第1行吗?“文件1.txt中的第1行和文件2.txt中的第2行”-你是指文件2.txt中的第2行,还是你打算在两边都说第1行?还有,你使用第1行的目的是什么?这个问题似乎与主题无关,因为代码没有问题;它正在按预期工作。如果你只想查看工作代码,就考虑在代码审查上张贴。是的,这就是我想要的,AWSUM!谢谢这个代码比OP的更糟糕。OP的代码流通过文件,因此内存占用最小。这会急切地将整个文件的内容加载到内存中,这对于大型文件来说可能是一个问题。这个解决方案也没有什么好处。嗨,Servy,千万不要想到这一点,谢谢:)@Servy:是的,你是对的。