代码之家  ›  专栏  ›  技术社区  ›  Cheeso

.NET:从字典生成字符串的有效方法?

  •  10
  • Cheeso  · 技术社区  · 14 年前

    假设我有一个 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中使用现有的扩展方法来实现这一点?

    我知道 ConvertAll() ForEach() 列表中的方法,可用于消除foreach循环。有没有类似的方法,我可以使用字典迭代项目和完成我想要的?

    2 回复  |  直到 14 年前
        1
  •  17
  •   SLaks    14 年前

    在.NET 4中:

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

    在.NET 3.5中,您需要添加 .ToArray() .

        2
  •  5
  •   Adam    14 年前

    干得好:

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