假设我有一个Dictionary<String,String>
,我想生成一个字符串表示形式。 “石头工具”的方式是:
private static string DictionaryToString(Dictionary<String,String> hash)
{
var list = new List<String> ();
foreach (var kvp in hash)
{
list.Add(kvp.Key + ":" + kvp.Value);
}
var result = String.Join(", ", list.ToArray());
return result;
}
使用现有的扩展方法在C#中有一种有效的方法吗?
我知道List上的ConvertAll()和ForEach()方法,可以用来消除foreach循环。是否有类似的方法我可以在Dictionary上使用迭代项目并完成我想要的东西?
答案 0 :(得分:17)
在.Net 4.0中:
String.Join(", ", hash.Select(kvp => kvp.Key + ":" + kvp.Value));
在.Net 3.5中,您需要添加.ToArray()
。
答案 1 :(得分:5)
你走了:
public static class DictionaryExtensions
{
public static string DictionaryToString(this Dictionary<String, String> hash)
{
return String.Join(", ", hash.Select(kvp => kvp.Key + ":" + kvp.Value));
}
}