Concat Tkey и TValue в словаре в C # - PullRequest
       2

Concat Tkey и TValue в словаре в C #

0 голосов
/ 10 февраля 2011

Здравствуйте, я пытаюсь объединить значения словаря.

То, чего я хочу достичь, это:

Возьмите TKey и добавьте это к TValue в том же словаре.

Любая подсказка о том, как заставить это работать.

Ответы [ 3 ]

3 голосов
/ 10 февраля 2011

Вы имеете в виду, что хотите строковое представление?

Я бы пошел с чем-то вроде этого, если так:

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());
}
3 голосов
/ 10 февраля 2011

Не совсем понятно, что / зачем вам это нужно, но это «добавит» значение к ключу (при условии, что оператор «+» будет работать с вашими типами ключ / значение).

dictionary.Select(x => x.Key + x.Value)
2 голосов
/ 10 февраля 2011

Это достаточно просто с 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
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...