C# C语言词典中的Concat Tkey和TValue#
您好,我正在尝试连接字典的值 我想完成的事情是: 获取TKey并将其添加到同一字典中的TValueC# C语言词典中的Concat Tkey和TValue#,c#,dictionary,C#,Dictionary,您好,我正在尝试连接字典的值 我想完成的事情是: 获取TKey并将其添加到同一字典中的TValue 任何关于如何使其工作的线索。不完全清楚您想要什么/为什么这样做,但这将“添加”键的值(假设“+”运算符将处理您的键/值类型) 你是说你想要一个字符串表示法 如果是这样的话,我会选择这样的方式: public static class KeyValuePairEx { public static string ConcatToString<TKey, TValue>(this K
任何关于如何使其工作的线索。不完全清楚您想要什么/为什么这样做,但这将“添加”键的值(假设“+”运算符将处理您的键/值类型)
你是说你想要一个字符串表示法 如果是这样的话,我会选择这样的方式:
public static class KeyValuePairEx
{
public static string ConcatToString<TKey, TValue>(this KeyValuePair<TKey, TValue> source)
{
return string.Format("{0} {1}", source.Key, source.Value);
}
}
公共静态类KeyValuePairEx
{
公共静态字符串ConcatToString(此KeyValuePair源)
{
返回string.Format(“{0}{1}”,source.Key,source.Value);
}
}
用法:
Dictionary<int, string> dict = GetDictionary();
foreach (var entry in dict)
{
Console.WriteLine(entry.ConcatToString());
}
Dictionary dict=GetDictionary();
foreach(dict中的var条目)
{
Console.WriteLine(entry.concatotString());
}
这对于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
);
获得帮助的良好开端是接受以前的回答,你还需要提供更多的背景。你知道具体的类型吗?如果没有,您将如何定义“添加”?您在这里没有提供任何有用的信息。你是在问如何连接字符串吗?如果没有,你想做什么?您希望如何处理连接的字符串?它与dictionary对象有什么关系?一些代码可以告诉我们您尝试了什么。到目前为止您尝试了什么?你有没有试过一个简单的
foreach
?并不是所有的东西都可以很容易地连接起来…+1。聚合的有趣用法。从来没有想过这样做。嗯,我会使用string.Join
来代替它——这样你就可以避免看起来很粗糙的.TrimEnd(',')
@Kirk——实际上这是一个很好的方向Join
将使用不安全的
代码,因此它的性能应该相当好。
var result =
string.Join(
",",
dictionary
.Select(kv => string.Format("({0}, {1})", kv.Key, kv.Value))
.ToArray() // This is not necessary in .NET 4.0
);