Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言词典中的Concat Tkey和TValue#_C#_Dictionary - Fatal编程技术网

C# C语言词典中的Concat Tkey和TValue#

C# C语言词典中的Concat Tkey和TValue#,c#,dictionary,C#,Dictionary,您好,我正在尝试连接字典的值 我想完成的事情是: 获取TKey并将其添加到同一字典中的TValue 任何关于如何使其工作的线索。不完全清楚您想要什么/为什么这样做,但这将“添加”键的值(假设“+”运算符将处理您的键/值类型) 你是说你想要一个字符串表示法 如果是这样的话,我会选择这样的方式: public static class KeyValuePairEx { public static string ConcatToString<TKey, TValue>(this K

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

我想完成的事情是:

获取TKey并将其添加到同一字典中的TValue


任何关于如何使其工作的线索。

不完全清楚您想要什么/为什么这样做,但这将“添加”键的值(假设“+”运算符将处理您的键/值类型)


你是说你想要一个字符串表示法

如果是这样的话,我会选择这样的方式:

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