Вместо lines.Take
вы можете использовать lines.Skip
, например:
var lines = File.ReadAllLines("test.txt");
File.WriteAllLines("test.txt", lines.Skip(1).ToArray());
для усечения в начале, несмотря на тот факт, что используемая техника (читать весь текст и записывать все обратно) оченьнеэффективно.
Об эффективном способе. Неэффективность возникает из-за необходимости считывать весь файл в память.Другим способом может быть поиск в потоке и копирование потока в другой выходной файл, удаление оригинала и переименование старого.Это было бы одинаково быстро и при этом потребляло бы гораздо меньше памяти.
Обрезать файл в конце гораздо проще.Вы можете просто найти позицию trunaction и позвонить FileStream.SetLength()
.