Concat中的Concat Tkey和TValue#

时间:2011-02-10 17:47:31

标签: c# dictionary

您好我正在尝试连接字典的值。

我想要完成的事情是:

拿TKey并将其添加到同一词典中的TValue。

有关如何使这项工作的任何线索。

3 个答案:

答案 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
    );