C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

DictionaryのKeyとValueを結合してListに

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■87621 / inTopicNo.1)  DictionaryのKeyとValueを結合してListに
  
□投稿者/ ちゅん (1回)-(2018/06/14(Thu) 11:21:55)

分類:[C#] 

いつもお世話になっております。

Dictionary<string,int>型のデータ(dic)からKeyとValueを結合した形でList<string>型変数(lis)に変換したいのですが、一行で書くにはどうしたら良いのでしょうか。

Keyだけ、Valueだけなら
lis = dic.Keys.ToList<string>();
という感じで変換出来たのですが・・・。

入力
"aaa",5
"bbb",3

出力
"aaa:5"
"bbb:3"

バージョンはVS C# 2010で動く書き方でお願いいたします。
引用返信 編集キー/
■87622 / inTopicNo.2)  Re[1]: DictionaryのKeyとValueを結合してListに
□投稿者/ Hongliang (648回)-(2018/06/14(Thu) 11:30:39)
2018/06/14(Thu) 11:31:33 編集(投稿者)

結合ってのは、カンマ区切りの文字列ってことでいいんでしょうか?
var list = dic.Select(_pair => $"{_pair.Key},{_pair.Value}").ToList();
// VS2013までなら$""は使えないのでString.Formatを使ってください。

追記
あ、カンマじゃなくてコロンか…。
引用返信 編集キー/
■87623 / inTopicNo.3)  Re[1]: DictionaryのKeyとValueを結合してListに
□投稿者/ 魔界の仮面弁士 (1712回)-(2018/06/14(Thu) 11:46:23)
No87621 (ちゅん さん) に返信
> Dictionary<string,int>型のデータ(dic)からKeyとValueを結合した形でList<string>型変数(lis)に変換したい

var dic = new Dictionary<string, int>() { { "aaa", 5 }, { "bbb", 3 } };

var lis1 = dic.Select(x => x.Key + ":" + x.Value).ToList();
var lis2 = new List<string>(dic.Select(x => x.Key + ":" + x.Value));
var lis3 = Enumerable.ToList(from x in dic select x.Key + ":" + x.Value);
引用返信 編集キー/
■87629 / inTopicNo.4)  Re[2]: DictionaryのKeyとValueを結合してListに
□投稿者/ ちゅん (3回)-(2018/06/14(Thu) 12:20:32)
魔界の仮面弁士さま

大変良くわかりました!
今後もよろしくお願いいたします。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ