У меня есть функция, которая пропускает строки n
кода и берет y
строки из заданного файла с помощью File.ReadLines
с комбинацией Skip
и Take
. Когда я попытаюсь открыть файл, указанный filePath
, в следующий раз:
string[] Lines = File.ReadLines(filePath).Skip(0).Take(0).ToArray();
using (StreamWriter streamWriter = new StreamWriter(filePath))
{
// ...
}
Я получаю исключение File in use by another process
в строке "using
".
Похоже, что IEnumerable.Take(0)
является виновником, так как он возвращает пустой IEnumerable
без перечисления на объект, возвращенный File.ReadLines()
, который, я считаю, не удаляет файл.
Я прав? Должны ли они не перечислять, чтобы избежать таких ошибок? Как это сделать правильно?