Wie schreibe ich Inhalte von System.collections.Specialized.stringCollection in Datei?

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

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

War es hilfreich?

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();
        }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top