将字典<string,string>转换为分号在c#中的string
简单的开始一天,给一个Dictionary<string, string> ,如下所示: 
 var myDict = new Dictionary<string, string>(); myDict["A"] = "1"; myDict["B"] = "2"; myDict["C"] = "3"; myDict["D"] = "4"; 
 我希望创build一个string: "A=1;B=2;C=3;D=4" 
一个示例实现:
 var myStringBuilder = new StringBuilder(); bool first = true; foreach (KeyValuePair<string, string> pair in myDict) { if (first) { first = false; } else { myStringBuilder.Append(";"); } myStringBuilder.AppendFormat("{0}={1}", pair.Key, pair.Value); } var myDesiredOutput = myStringBuilder.ToString(); 
请注意,字典可能有less于10个项目,这表明一个StringBuilder是矫枉过正。
什么替代实现更简洁/高效? 框架是否有帮助的function?
 string s = string.Join(";", myDict.Select(x => x.Key + "=" + x.Value).ToArray()); 
  (如果您使用的是.NET 4或更新的版本,则可以省略最后的ToArray调用。) 
另一种select是使用聚合扩展而不是join:
 String s = myDict.Select(x => x.Key + "=" + x.Value).Aggregate((s1, s2) => s1 + ";" + s2);