Comment écrire le contenu de System.Collections.Specialized.StringCollection au fichier?
-
27-10-2019 - |
Question
Je n'ai pas eu de chance de chercher les endroits évidents pour une réponse à pourquoi l'utilisation File.WriteAllLines (); ne fonctionne pas lors de la sortie d'un StringCollection:
static System.Collections.Specialized.StringCollection infectedLog = new System.Collections.Specialized.StringCollection();
Code Omission ici qui a peuplé infectedLog .......
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog);
Quelqu'un pourrait-il me dire ce que ce soit que je fais mal ou me diriger dans la direction d'une explication qui plaira?
La solution
Le File.WriteAllLines
attend un IEnumerable<string>
(ou un string[]
), alors que seulement StringCollection
outils IEnumerable
(notez l'absence de type générique). Procédez comme suit:
using System.Linq;
...
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());
Autres conseils
essayer cette
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());
Le problème est que StringCollection est une collection vraiment froid. Il ne met pas en œuvre IEnumerable
Vous pouvez faire ceci:
File.WriteAllLines(theFileName, infectedLog.Cast<string>());
Ou, vous pouvez passer à un type de collection plus moderne, comme une liste
using (StreamWriter w = File.AppendText(@"testfile.txt"))
{
foreach (var line in sc)
{
w.WriteLine(line);
}
w.Close();
}