@NeoLight2

Как сохранить Dictionary в файл, с возможностью измениния значений в файле?

Я хочу сделать возможность загружать и выгружать список Dictionary() в файл, так чтобы в файле можно было менять эти два значения.
public static Dictionary<string, float> wallets = new Dictionary<string, float>();


Чтобы можно было каждую строку добавлять новый товар (string) и цену для него (float), примерно вот так:
Coffee = 100
Tea = 50

Есть варианты?
  • Вопрос задан
  • 662 просмотра
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
Я бы предпочёл использовать какой-нибудь из существующих форматов: json, yaml, ini, toml.
Но в принципе парсер вашего формата пишется в 5 строчек (буквально)
Запись:
var dictionary = new Dictionary<string, string>();
var sb = new StringBuilder();
foreach(var kv in dictionary) { // В принципе, можно оптимизировать, если писать не в StringBuilder, а сразу в стрим, который ассоциируется с файлом.
    sb.AppendLine($"{kv.Key}={kv.Value}");
}
var text = sb.ToString();
// Дальше пишем text в файл.


Чтение:
var dictionary = new Dictionary<string,string>();
var lines= File.ReadAllLines("pathToFile"); // читаем построчно
foreach(var line in lines) {
  var tokens = line.Split("=");
  var key = tokens[0].Trim();
  var value = string.Join("", tokens.Skip(1)).Trim();
  dictionary[key] = value;
}
// Используем dictionary как хотим


UPD: Я вспомнил, что мне этот формат напоминает. Это же dotenv
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы