您好我正在尝试连接字典的值。
我想要完成的事情是:
拿TKey并将其添加到同一词典中的TValue。
有关如何使这项工作的任何线索。
答案 0 :(得分:3)
不完全清楚你想要的是什么/为什么,但这会将值“加”到键上(假设'+'运算符适用于你的键/值类型)。
dictionary.Select(x => x.Key + x.Value)
答案 1 :(得分:3)
你的意思是你想要一个字符串表示?
我会选择这样的事情,如果是这样的话:
public static class KeyValuePairEx
{
public static string ConcatToString<TKey, TValue>(this KeyValuePair<TKey, TValue> source)
{
return string.Format("{0} {1}", source.Key, source.Value);
}
}
用法:
Dictionary<int, string> dict = GetDictionary();
foreach (var entry in dict)
{
Console.WriteLine(entry.ConcatToString());
}
答案 2 :(得分:2)
这对LINQ来说很简单。
var result =
dictionary
.Aggregate(
new StringBuilder(),
(sb, kv) =>
sb.AppendFormat(
"({0}, {1}),",
kv.Key,
kv.Value
)
)
.ToString()
.TrimEnd(',');
@Kirk Woll建议的另一条路线
var result =
string.Join(
",",
dictionary
.Select(kv => string.Format("({0}, {1})", kv.Key, kv.Value))
.ToArray() // This is not necessary in .NET 4.0
);