C# 如何在c中从文件中删除匹配行#

C# 如何在c中从文件中删除匹配行#,c#,C#,我有一个条件,即a中的每一行都应该是唯一的。我正在将一个文件的输出写入另一个文件,在写入输出之前,我必须检查该行是否已存在于文件中。如果存在,则我必须跳过该行以避免多次输入 string[] outfiles = File.ReadAllLines(@"C:\Users\AdnanHaider\Desktop\line.txt"); foreach (string repeat in outfiles) { if (repeat.Contains(data)) {

我有一个条件,即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是要写入和检查数据的文件,如果outfile中存在数据或不存在数据,如果是,则删除该数据,然后继续

您可以使用LINQ功能:

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

您可以使用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 );