У меня есть функция, которая пропускает строки 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(), который, я считаю, не удаляет файл.
Я прав? Должны ли они не перечислять, чтобы избежать таких ошибок? Как это сделать правильно?