¿Cómo escribir el contenido de System.Collections.Specialized.StringCollection para archivar?

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

  •  27-10-2019
  •  | 
  •  

Pregunta

No he tenido suerte buscando en los lugares obvios una respuesta a por qué usar file.writealllines (); No funciona al emitir una StringCollection:

static System.Collections.Specialized.StringCollection infectedLog = new System.Collections.Specialized.StringCollection();

Omitir el código aquí que ha poblado InfectedLog .......

File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog);

¿Alguien podría decirme lo que estoy haciendo mal o señalarme en la dirección de una explicación que complacerá?

¿Fue útil?

Solución

los File.WriteAllLines espera un IEnumerable<string> (o un string[]) mientras StringCollection solo implementos IEnumerable (Tenga en cuenta la falta de tipo genérico). Prueba lo siguiente:

using System.Linq;
...
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());

Otros consejos

prueba esto

File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());

El problema es que StringCollection es una colección realmente fría. No implementa ienumerableu003CT> , y no es una matriz, por lo que no hay una sobrecarga de Writealllines para ello.

Puedes hacerlo:

File.WriteAllLines(theFileName, infectedLog.Cast<string>());

O podría cambiar a un tipo de colección más moderno, como una listau003Cstring> .

        using (StreamWriter w = File.AppendText(@"testfile.txt"))
        {
            foreach (var line in sc)
            {
                w.WriteLine(line);
            }
            w.Close();
        }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top