Wie schreibe ich Inhalte von System.collections.Specialized.stringCollection in Datei?
-
27-10-2019 - |
Frage
Ich hatte kein Glück, die offensichtlichen Orte nach einer Antwort auf die Verwendung von Datei.WriteAlllines () zu suchen. Funktioniert nicht, wenn Sie eine StringCollection ausgeben:
static System.Collections.Specialized.StringCollection infectedLog = new System.Collections.Specialized.StringCollection();
Hier weglassen Code, der Infizedlog bevölkert hat .......
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog);
Könnte mir jemand entweder sagen, was ich falsch mache, oder mich in Richtung einer Erklärung weisen, die bitte?
Lösung
Das File.WriteAllLines
erwartet an IEnumerable<string>
(oder ein string[]
) wohingegen StringCollection
nur implementiert IEnumerable
(Beachten Sie den Mangel an generischen Typen). Versuche Folgendes:
using System.Linq;
...
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());
Andere Tipps
Versuche dies
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());
Das Problem ist, dass StringCollection eine wirklich kalte Sammlung ist. Es implementiert nicht iEnumerableu003CT> , und es ist kein Array, also gibt es keine Überladung von WritaLlines dafür.
Du kannst das:
File.WriteAllLines(theFileName, infectedLog.Cast<string>());
Oder Sie können wie eine Liste zu einem moderneren Sammlungstyp wechselnu003Cstring> .
using (StreamWriter w = File.AppendText(@"testfile.txt"))
{
foreach (var line in sc)
{
w.WriteLine(line);
}
w.Close();
}