У меня есть объект словаря Словаря типа
и попытке использовать StreamWriter для вывода всего содержания к текстовому файлу, но не удалось найти корректный метод от класса Словаря.
using (StreamWriter sw = new StreamWriter("myfile.txt"))
{
sw.WriteLine(dictionary.First());
}
Я могу только получить первый элемент, и он ограничен квадратной скобкой плюс разделитель запятой, промежуточный также:
[Peter, Администратор]
и было бы хорошо иметь [Peter Admin] (без запятой)
Вам нужно просмотреть записи самостоятельно:
using (StreamWriter file = new StreamWriter("myfile.txt"))
foreach (var entry in dictionary)
file.WriteLine("[{0} {1}]", entry.Key, entry.Value);
foreach (KeyValuePair<string,string> kvp in dictionary)
{
System.IO.File.AppendAllText("dictionary.txt", string.Format("{0} {1} {2}", kvp.Key, kvp.Value, Environment.NewLine));
}
File.WriteAllLines("myfile.txt",
dictionary.Select(x => "[" + x.Key + " " + x.Value + "]").ToArray());
(А если вы используете .NET4, то можете опустить последний вызов ToArray
)
Вам нужно выбрать строки, которые вы хотите записать, и итерационно перебрать полученное перечисление для записи каждой строки:
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);
}
}
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);