2014-01-09 6 views
0

У меня есть 2 текстовых файла на C#: Файл A & Файл B. Я хочу сравнить содержимое файла и если есть какой-либо контент, найденный в файле A, который присутствует в Файл B, затем я хочу удалить этот контент в файле B.Сравните содержимое текстового файла в C# и удалите его содержимое

Так что если есть способ в C#, который может сделать это для меня, то, пожалуйста, дайте мне знать?

ответ

1

Если вы хотите сравнить строки, которые вы могли бы использовать этот запрос:

var newLines = File.ReadLines(f2Path).Except(File.ReadLines(f1Path)).ToList(); 
File.WriteAllLines(f2Path, newLines); 

Edit: в соответствии с вашим комментарием (ы)

я хочу, чтобы исключить все строки из файла2, где идентификатор существует в файле1

Вы можете использовать этот left-outer-join с LINQ:

var idInF2 = from f2Line in File.ReadLines(f2Path) 
      join f1Line in File.ReadLines(f1Path) 
      on f2Line.Split(',')[0].Trim() equals f1Line.Split(',')[0].Trim() into gj 
      from lineOne in gj.DefaultIfEmpty() 
      where lineOne == null 
      select f2Line; 
File.WriteAllLines(f2Path, idInF2.ToList()); 

или вы могли бы использовать это более удобным для чтения, но менее эффективный подход с использованием Contains:

var f1IDs = File.ReadLines(f1Path).Select(l => l.Split(',')[0].Trim()); 
var newLines = File.ReadLines(f2Path) 
      .Select(l => new { Line = l, ID = l.Split(',')[0].Trim() }) 
      .Where(x => !f1IDs.Contains(x.ID)) 
      .Select(x => x.Line).ToList(); 
File.WriteAllLines(f2Path, newLines); 
+0

TNX для вашего ответа. но мои данные, например, это: 123, absdefgh .... (что может быть до тех пор, пока несколько строк, а не 1 строка), каждая строка имеет идентификатор, который является ineger, а затем отдельным, а длинными символами являются значение этого id, а следующие данные начинаются в другой строке –

+0

@mahsamahdavi: Таким образом, вы хотите исключить все строки из файла2, где id существует в файле1 или где id и строка одинаковы? –

+0

Я хочу исключить все строки из файла2, где id существует в файле1 –

Смежные вопросы