如何从c#中的文件中删除匹配的行?

时间:2017-07-12 18:39:36

标签: c#

我有一个条件,即a中的每一行应该是唯一的我正在将文件的输出写入另一个文件并且在写入输出之前我必须检查该行是否已经存在于文件中,如果是这样那么我必须跳过该行避免多次进入

string[] outfiles = File.ReadAllLines(@"C:\Users\AdnanHaider\Desktop\line.txt");
foreach (string repeat in outfiles)
{
    if (repeat.Contains(data))
    {         
    }
    else 
    {
        File.WriteAllLines(@"C:\Users\Adnan Haider\Desktop\line.txt",lineData);             
    } 
}

这里数据是第一个文件的输出,outfile是要写入和检查数据的数据,如果数据存在于outfiles中,如果是,则删除该数据继续进一步

2 个答案:

答案 0 :(得分:0)

您可以使用LINQ Distinct函数:

var filename = @"C:\Users\Adnan Haider\Desktop\line.txt";
File.WriteAllLines(filename, File.ReadAllLines(filename).Distinct());

答案 1 :(得分:0)

您可以使用LINQ Distinct();

string[] outfiles = File.ReadAllLines(@"C:\Users\AdnanHaider\Desktop\line.txt");

var filteredLines = outfiles.Distinct();

File.WriteAllLines(@"C:\Users\Adnan Haider\Desktop\line.txt", filteredLines );

我做了一个小提琴here