C# 将字典展平为以逗号分隔的键/值对集列表

C# 将字典展平为以逗号分隔的键/值对集列表,c#,C#,我有一本字典,例如: var fields = new Dictionary<string, string> { {"2", "34"}, {"4", "45"} }; var字段=新字典 { {"2", "34"}, {"4", "45"} }; 我想知道是否有比创建循环和字符串生成器更简单的方法来最终创建它:“键值,键值,键值” 因此,对于这本词典,我想把它展平成这样一个字符串,每个集合之间用逗

我有一本字典,例如:

 var fields = new Dictionary<string, string>
        {
            {"2", "34"},
            {"4", "45"}
        };
var字段=新字典
{
{"2", "34"},
{"4", "45"}
};
我想知道是否有比创建循环和字符串生成器更简单的方法来最终创建它:“键值,键值,键值”


因此,对于这本词典,我想把它展平成这样一个字符串,每个集合之间用逗号分隔,每个集合的键和值之间有一个空格:
“2 34,4 45”

选择包含每个键和值对的格式化字符串,然后用逗号连接它们:

var result = String.Join(", ", fields.Select(kvp => 
                                  String.Format("{0} {1}", kvp.Key, kvp.Value)));
替代解决方案-使用单个StringBuilder聚合KeyValuePair值:

var builder = fields.Aggregate(new StringBuilder(),
                  (sb, kvp) => sb.AppendFormat("{0} {1}, ", kvp.Key, kvp.Value));

if (builder.Length > 0)
    builder.Remove(builder.Length - 2, 2);

var result = builder.ToString();

因此,您将避免为每个KeyValuePair创建额外的字符串。

使用Linq非常容易:

string.Join(", ", fields.Select(kvp => kvp.Key + " " + kvp.Value));