我正在尝试创建一个由键后跟其值组成的字符串,这样字符串看起来像:
键;值,密钥;值,密钥;值
到目前为止,我尝试使用concat:
var originalKeyValues = entity.ChangeTracker.OriginalValues.Keys.Concat(
entity.ChangeTracker.OriginalValues.Values).ToString();
......但这似乎没有产生我想要的东西。
Keys
和Values
都是Dictionary<string, object>
答案 0 :(得分:6)
string result=list.Select(w=>w.Key+";"+w.Value).Aggregate((c,n)=>c+","+n);
答案 1 :(得分:3)
我会这样做:
var x = new Dictionary<string, string> { { "key", "value" }, { "key2", "value2" } };
Console.WriteLine(
String.Join(",", x.Select(d => String.Format("{0};{1}", d.Key, d.Value)))
);
从字典中选择一个可枚举的字符串,然后按,
加入列表。
输出:key;value,key2;value2
答案 2 :(得分:1)
var originalKeyValues = entity.ChangeTracker.OriginalValues
.Select(OV => OV.Key + ";" + OV.Value)
.Aggregate((acc, next) => acc + "," + next));
我认为(未经测试)。
答案 3 :(得分:1)
除了上面提到的那些:
result = (from a in list select a.Key + ";" + a.Value).Aggregate((current, next) => current + "," + next);
我们也可以尝试使用简单的for循环而不使用linq:
foreach (KeyValuePair<String, String> a in list)
result += a.Key + ";" + a.Value + ",";
或者我们可以使用String.Join的.NET 4功能:
result = String.Join(",", (from a in list select a.Key + ";" + a.Value));