Самый простой способ сделать это, вероятно, самый лучший: записать весь файл в новый файл, записав все строки, кроме той, которую вы не хотите.
Либо откройте файл для произвольного доступа.
Читайте до точки, где вы хотите «удалить» строку.
Пропустите строку, которую хотите удалить, и прочитайте это количество байтов (включая CR + LF - если необходимо), запишите это число байтов по удаленной строке, продвиньте оба местоположения на это количество байтов и повторите до конца файла.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ - Теперь, когда я вижу ваш код
if (!_deletedLines.Contains(counter))
{
writer.WriteLine(reader.ReadLine());
}
Не будет работать, если это строка, которую вы не хотите, вы все равно хотите прочитать ее , просто не пишите ее . Приведенный выше код не будет ни читать, ни писать. Новый файл будет точно таким же, как и старый.
Вы хотите что-то вроде
string line = reader.ReadLine();
if (!_deletedLines.Contains(counter))
{
writer.WriteLine(line);
}