J'ai une fonction qui Saute n
des lignes de code et Prend y
des lignes à partir d'un fichier à l'aide d' File.ReadLines
avec Skip
et Take
combinaison. Lorsque j'essaie d'ouvrir le fichier donné en filePath
la prochaine fois:
string[] Lines = File.ReadLines(filePath).Skip(0).Take(0).ToArray();
using (StreamWriter streamWriter = new StreamWriter(filePath))
{
// ...
}
Je reçois File in use by another process
d'exception sur le "using
" de ligne.
Il ressemble IEnumerable.Take(0)
est le coupable, car il renvoie un vide IEnumerable
sans l'énumération de l'objet retourné par File.ReadLines()
, ce qui je crois n'est pas de disposer du fichier.
Suis-je le droit? Ne devraient-ils pas énumérer pour éviter ce genre d'erreurs? Comment le faire correctement?