¿Cómo escribir el contenido de System.Collections.Specialized.StringCollection para archivar?
-
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á?
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();
}