Предположим, что у меня есть a Dictionary
, и я хочу произвести строковое представление его. "Каменные инструменты" способ сделать его были бы:
private static string DictionaryToString(Dictionary hash)
{
var list = new List ();
foreach (var kvp in hash)
{
list.Add(kvp.Key + ":" + kvp.Value);
}
var result = String.Join(", ", list.ToArray());
return result;
}
Существует ли эффективный способ сделать это в C# с помощью существующих дополнительных методов?
Я знаю о ConvertAll () и ForEach () методы в Списке, который может использоваться для устранения циклов foreach. Существует ли похожий метод, который я могу использовать на Словаре, чтобы выполнить итерации через объекты и выполнить то, что я хочу?
В .Net 4.0:
String.Join(", ", hash.Select(kvp => kvp.Key + ":" + kvp.Value));
В .Net 3.5 вам нужно добавить .ToArray ()
.
Вот так:
public static class DictionaryExtensions
{
public static string DictionaryToString(this Dictionary<String, String> hash)
{
return String.Join(", ", hash.Select(kvp => kvp.Key + ":" + kvp.Value));
}
}