Как записать List в файл?

586
19 мая 2017, 12:37

Есть информация, добавляется во время выполнения программы в лист, нужно записать этот лист в файл, и при каждом запуске программы, этот файл должен загружать эту информацию в лист, как это реализовать? (Или вместо файла в XML)

Answer 1

Если список строк то достаточно просто записывать так:

var lines = File.ReadAllLines(path).ToList();
...
lines.Add("line");
File.WriteAllLines(path);

Если же вы не собираетесь работать с файлом, а вам нужно просто дописывать значения (логирование, например), то лучше будет просто добавлять строки (чтобы не забарахлять память):

File.AppendAllLines(path, lines);

Если список кастомного типа, то проще будет серилизовать:

public List<MyClass> ReadAndDeserialize(string path)
{
    var serializer = new XmlSerializer(typeof(List<MyClass>));
    using(var reader = new StreamReader(path))
    {
        return (List<MyClass>)serializer.Deserialize(reader);
    }
}
public void SerializeAndSave(string path, List<MyClass> data)
{
    var serializer = new XmlSerializer(typeof(List<MyClass>));
    using (var writer = new StreamWriter(path))
    {
        serializer.Serialize(writer, data);
    }
}

Документация:

  • File.ReadAllLines()
  • File.WriteAllLines()
  • File.AppendAllLines()
  • XmlSerializer.Deserialize()
  • XmlSerializer.Serialize()
READ ALSO
Ширина TabPages

Ширина TabPages

Имею 3 TabPages, как можно сделать, чтобы их ширина полностью заняла всю ширину TabControl? FillToRight не работаетЕсли только не задать ширину свою и сделать...

220
Вертикальные названия столбцов DataGridView

Вертикальные названия столбцов DataGridView

ЗдравствуйтеВывожу в таблицу значения из базы данных

199
Зависает программа при вставки в фрейм xaml

Зависает программа при вставки в фрейм xaml

UserControl2xaml типа Controls:MetroWindow ( MahApps

225