Как записать содержание словаря к текстовому файлу?

У меня есть объект словаря Словаря типа

и попытке использовать StreamWriter для вывода всего содержания к текстовому файлу, но не удалось найти корректный метод от класса Словаря.

using (StreamWriter sw = new StreamWriter("myfile.txt"))
        {
            sw.WriteLine(dictionary.First());

        }

Я могу только получить первый элемент, и он ограничен квадратной скобкой плюс разделитель запятой, промежуточный также:

[Peter, Администратор]

и было бы хорошо иметь [Peter Admin] (без запятой)

23
задан Chris 18 June 2010 в 04:57
поделиться

5 ответов

Вам нужно просмотреть записи самостоятельно:

using (StreamWriter file = new StreamWriter("myfile.txt"))
    foreach (var entry in dictionary)
        file.WriteLine("[{0} {1}]", entry.Key, entry.Value); 
29
ответ дан 29 November 2019 в 00:51
поделиться
foreach (KeyValuePair<string,string>  kvp in dictionary)
{
     System.IO.File.AppendAllText("dictionary.txt", string.Format("{0} {1} {2}", kvp.Key,    kvp.Value, Environment.NewLine));
}
3
ответ дан 29 November 2019 в 00:51
поделиться
File.WriteAllLines("myfile.txt",
    dictionary.Select(x => "[" + x.Key + " " + x.Value + "]").ToArray());

(А если вы используете .NET4, то можете опустить последний вызов ToArray)

.
36
ответ дан 29 November 2019 в 00:51
поделиться

Вам нужно выбрать строки, которые вы хотите записать, и итерационно перебрать полученное перечисление для записи каждой строки:

var dataToWrite = from kvp in dictionary
                  select String.Format("[{0} {1}"], kvp.Key kvp.Value);

using (StreamWriter sw = new StreamWriter("myfile.txt"))
{
    foreach (string dataLine in dataToWrite)
    {
        sw.WriteLine(dataLine);
    }
}
1
ответ дан 29 November 2019 в 00:51
поделиться
var pairs = from p in yourDictionary.Keys
    select new {Key=p, Value=yourDictionary[p]};

foreach(var pair in pairs)
    yourStreamWriter.WriteLine("Key={0}, Value={1}", pair.Key, pair.Value);
1
ответ дан 29 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: