Comment écrire le contenu de System.Collections.Specialized.StringCollection au fichier?

StackOverflow https://stackoverflow.com/questions/9329548

  •  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?

Était-ce utile?

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 , et il est pas un tableau, donc il n'y a pas de surcharge de WriteAllLines pour elle.

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();
        }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top