Come scrivere contenuti di System.Collections.Specialized.StringCollection in un file?
-
27-10-2019 - |
Domanda
Ho avuto fortuna a cercare i luoghi ovvie per una risposta al perché utilizzando File.WriteAllLines (); non funziona quando viene emesso uno StringCollection:
static System.Collections.Specialized.StringCollection infectedLog = new System.Collections.Specialized.StringCollection();
Codice Omettendo qui che ha popolato infectedLog .......
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog);
Qualcuno potrebbe neanche dirmi che cosa sto facendo male, o indicarlo nel senso di una spiegazione che farà piacere?
Soluzione
Il File.WriteAllLines
aspetta un IEnumerable<string>
(o una string[]
), mentre solo StringCollection
attrezzi IEnumerable
(notare la mancanza di tipo generico). Provare quanto segue:
using System.Linq;
...
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());
Altri suggerimenti
Prova questo
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());
Il problema è che StringCollection è una collezione veramente freddo. Non implementa IEnumerable
Si può fare questo:
File.WriteAllLines(theFileName, infectedLog.Cast<string>());
In alternativa, si potrebbe passare a un più moderno tipo di raccolta, come un List
using (StreamWriter w = File.AppendText(@"testfile.txt"))
{
foreach (var line in sc)
{
w.WriteLine(line);
}
w.Close();
}