2010-05-12 57 views
10

假設我有一個Dictionary<String,String>,我想生成一個字符串表示形式。這樣做會的「石器」的方式:.NET:從字典中產生字符串的有效方法<K,V>?

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上使用來迭代項目並完成我想要的內容?

+1

應設置'List'的能力。 – SLaks 2010-05-12 14:18:24

回答

17

在.NET 4.0中:

String.Join(", ", hash.Select(kvp => kvp.Key + ":" + kvp.Value)); 

.NET 3.5中,你將需要添加.ToArray()

+0

第二個T_T ---很好的解決方案,速度很快,很容易閱讀。 – mafu 2010-05-12 14:13:17

5

在這裏你去:


    public static class DictionaryExtensions 
    { 
     public static string DictionaryToString(this Dictionary<String, String> hash) 
     { 
      return String.Join(", ", hash.Select(kvp => kvp.Key + ":" + kvp.Value)); 
     } 
    } 
相關問題