Como escrever uma coleção observável em um arquivo txt? C# Docow
c # observablecollection salvar streamwriter writetofile
Como escrever uma coleção observável em um arquivo txt?
Qual é a melhor maneira de escrever uma coleção observável para um arquivo txt? Atualmente tenho o seguinte
public ObservableCollection SavedActionList = new ObservableCollection(); using (System.IO.StreamWriter file = new System.IO.StreamWriter("SavedAccounts.txt")) { foreach (Account item in SavedActionList) { file.WriteLine(item.ToString()); //doesn't work } file.Close(); }
Não sei por que não vai gravar no arquivo. Alguma ideia?
Você pode facilmente escrever:
File.WriteAllLines("SavedAccounts.txt", SavedActionList.Select(item => item.ToString()));
No entanto, isso exigirá que sua class Account substitua ToString para fornecer as informações que você deseja gravar no arquivo.
Se você não tiver um ToString substituído, recomendo criar um método para lidar com isso:
string AccountToLine(Account account) { // Convert account into a 1 line string, and return }
Com isso, você poderia escrever:
File.WriteAllLines("SavedAccounts.txt", SavedActionList.Select(AccountToLine));
Edite em resposta aos comentários:
Isso simplesmente não funciona. Estou muito confuso sobre o porquê, e é por isso que postei a pergunta. Eu testei inserindo um file.WriteLine ("Hello") antes do file.Close () e quando eu rodar o programa e verificar o arquivo tudo que ele terá nele é "Hello"
Isso realmente parece que você está escrevendo sua coleção sem adicionar itens a ela. Se a coleção estiver vazia, o código acima (e o seu) criará um arquivo vazio de saída, pois não há instâncias da Account para gravar.