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

わんくま同盟

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

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

ツリー一括表示

DictionaryのKeyとValueを結合してListに /ちゅん (18/06/14(Thu) 11:21) #87621
Re[1]: DictionaryのKeyとValueを結合してListに /Hongliang (18/06/14(Thu) 11:30) #87622
Re[1]: DictionaryのKeyとValueを結合してListに /魔界の仮面弁士 (18/06/14(Thu) 11:46) #87623
  └ Re[2]: DictionaryのKeyとValueを結合してListに /ちゅん (18/06/14(Thu) 12:20) #87629 解決済み


親記事 / ▼[ 87622 ] ▼[ 87623 ]
■87621 / 親階層)  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で動く書き方でお願いいたします。
[ □ Tree ] 返信 編集キー/

▲[ 87621 ] / 返信無し
■87622 / 1階層)  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を使ってください。

追記
あ、カンマじゃなくてコロンか…。
[ 親 87621 / □ Tree ] 返信 編集キー/

▲[ 87621 ] / ▼[ 87629 ]
■87623 / 1階層)  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);
[ 親 87621 / □ Tree ] 返信 編集キー/

▲[ 87623 ] / 返信無し
■87629 / 2階層)  Re[2]: DictionaryのKeyとValueを結合してListに
□投稿者/ ちゅん (3回)-(2018/06/14(Thu) 12:20:32)
魔界の仮面弁士さま

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


管理者用

- Child Tree -