こんにちは私は辞書の値を連結しようとしています。Cの辞書のConcat TkeyとTValue
私が達成したい事はある:
が処理鍵を取り、同じ辞書でTValueにこれを追加します。
どのようにこの仕事をするかについての手掛かり。
こんにちは私は辞書の値を連結しようとしています。Cの辞書のConcat TkeyとTValue
私が達成したい事はある:
が処理鍵を取り、同じ辞書でTValueにこれを追加します。
どのようにこの仕事をするかについての手掛かり。
。
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
);
+1。興味深い集計の使用。このようにすることは決して考えなかった。 – Skurmedel
ええと、私は 'string.Join'を代わりに使うでしょう。そうすれば、あなたは、' .TrimEnd( '、') 'のようなハッキングを避けることができます。 –
@Kirk - これは実際に取るには良い方向です。 'Join'は' unsafe'コードを使いますので、かなりうまくいくはずです。 – ChaosPandion
これを何で/なぜ必要なのかを完全にはっきりさせることはできませんが、キーに値を「追加」します( '+'演算子がキー/値型で動作すると仮定します)。
dictionary.Select(x => x.Key + x.Value)
文字列表記が必要ですか?
私がもしそうなら、このようなものでいいと思う:
public static class KeyValuePairEx
{
public static string ConcatToString<TKey, TValue>(this KeyValuePair<TKey, TValue> source)
{
return string.Format("{0} {1}", source.Key, source.Value);
}
}
使用法:これは、LINQと十分に単純である
Dictionary<int, string> dict = GetDictionary();
foreach (var entry in dict)
{
Console.WriteLine(entry.ConcatToString());
}
良いスタートの助けを得るために、以前の答えを受け入れることです – Andrey
そして、あなたはまた、より多くのコンテキストを提供する必要があります。あなたは具体的なタイプを知っていますか?そうでない場合は、どのように「追加」を定義しますか? – driis
ここには役に立つ情報はありませんでした。あなたは文字列を連結する方法を尋ねていますか?そうでない場合、あなたは何をしようとしていますか?連結された文字列で何をしたいですか?そしてそれは辞書オブジェクトにどのように関連していますか? –