C# 他把这行的其余部分作为你的第二个字符串类型。然后,您可以快速找到itemId是否存在,并比较这些行。当然,这是假设.Net 2.0+MaxGeek只能将第一个文件加载到数据集中,然后遍历第二个文件,并使用.Select()只搜索一个数据集。还是我遗漏了什么

C# 他把这行的其余部分作为你的第二个字符串类型。然后,您可以快速找到itemId是否存在,并比较这些行。当然,这是假设.Net 2.0+MaxGeek只能将第一个文件加载到数据集中,然后遍历第二个文件,并使用.Select()只搜索一个数据集。还是我遗漏了什么,c#,comparison,types,sorted,C#,Comparison,Types,Sorted,他把这行的其余部分作为你的第二个字符串类型。然后,您可以快速找到itemId是否存在,并比较这些行。当然,这是假设.Net 2.0+MaxGeek只能将第一个文件加载到数据集中,然后遍历第二个文件,并使用.Select()只搜索一个数据集。还是我遗漏了什么?A包含1,3,5 B包含1,2,3,4。如果只比较一个方向,即通过A循环检查B,你在B中找不到2和4。你也必须在B中循环,看看它有什么A没有的只是为了澄清你想创建一个包含第二个文件中所有行但不在第一个文件中的文件吗?也许两个输入文件和预期输出


他把这行的其余部分作为你的第二个字符串类型。然后,您可以快速找到itemId是否存在,并比较这些行。当然,这是假设.Net 2.0+

MaxGeek只能将第一个文件加载到数据集中,然后遍历第二个文件,并使用.Select()只搜索一个数据集。还是我遗漏了什么?A包含1,3,5 B包含1,2,3,4。如果只比较一个方向,即通过A循环检查B,你在B中找不到2和4。你也必须在B中循环,看看它有什么A没有的只是为了澄清你想创建一个包含第二个文件中所有行但不在第一个文件中的文件吗?也许两个输入文件和预期输出的一个小示例有助于澄清?这就是我以前在CSV文件中所做的这是非常大的一千万条记录,我已经取得了令人满意的成绩。在不到一分钟的时间内。如果文件中有不同的行数呢?如果CSV文件有一个键或ID字段,您可以比较它们,然后决定从一行或另一行中读取另一行。
StreamReader one = new StreamReader("C:\file1.csv");
StreamReader two = new StreamReader("C:\file2.csv");
String lineOne;
String lineTwo;

StreamWriter differences = new StreamWriter("Output.csv");
while (!one.EndOfStream)
{
    lineOne = one.ReadLine();
    lineTwo = two.ReadLine();
    // do your comparison.
    bool areDifferent = true;

    if (areDifferent)
        differences.WriteLine(lineOne + lineTwo);
}

one.Close();
two.Close();
differences.Close();
StreamReader one = new StreamReader("C:\file1.csv");
StreamReader two = new StreamReader("C:\file2.csv");
String lineOne;
String lineTwo;
StreamWriter differences = new StreamWriter("Output.csv");
lineOne = one.ReadLine();
lineTwo = two.ReadLine();
while (!one.EndOfStream || !two.EndOfStream)
{
  if(lineOne == lineTwo)
  {
    // lines match, read next line from each and continue
    lineOne = one.ReadLine();
    lineTwo = two.ReadLine();
    continue;
  }
  if(two.EndOfStream || lineOne < lineTwo)
  {
    differences.WriteLine(lineOne);
    lineOne = one.ReadLine();
  }
  if(one.EndOfStream || lineTwo < lineOne)
  {
    differences.WriteLine(lineTwo);
    lineTwo = two.ReadLine();
  }
}