C#
1Dictoinary<int, string> data = new Dictionary<int, string>() 2{ 3 {0, "kojima"}, 4 {1, "tanaka"}, 5 {2, "kimura"}, 6 {3, "suzuki"}, 7}; 8 9public class Data 10{ 11 public int Id { get; set; } 12 public string Name { get; set; } 13}
上記のdata
というDictionaryをList<Data>
に変換する短い書き方はどのようなものがありますでしょうか。
知恵をお貸し頂ければと思います。
よろしくおねがいします。
普通にやってもそんなに長くならないと思いますが。
私の普通はforeachで処理することですが、Zuishinさんの普通はどのようなものか、どうか教えていただけませんでしょうか。
KeyをリストにしたいのかValueをリストにしたいのか、はたまたKeyValueのペアをリストにしたいのか、何らかのオブジェクトに変換してリストにしたいのか。
質問文から全くやりたいことが伝わってこない。
まぁどれでも可能な方法で言えば、LINQでSelect()してToList<T>()するなり何なり。
Dictionary<int, string>はKeyがintでValueがstringですよね。
DataクラスはIdがintでNameがstringです。
つまりIdがKey、NameがValueです。
そのDataクラスのListを作りたいと書いておりますが、どのへんがわからないでしょうか。
あ、List<Data>って書いてあったの見落としてました。
まぁ解決策は上記。
SelectでToListですね。ありがとうございます。
LINQ でも foreach でも、わざわざ長く書こうとしさえしなければ、これを長く書く方が難しいという意味です。
それ以上のコードゴルフ的なものを求めているのかと思いました。
「一番」とあるので。
そうですね、
私はよく「こんな書き方あったんだ」ということがあるので、自分の調査不足や不手際によって知らない書き方や効率の良い書き方があるのではと、熟練者の方々の知恵をお貸しいただきたかったという感じですね。
なるべく短い書き方を競うことをコードゴルフというのですね。初めて知りました。面白いですね。
ありがとうございます。
一番と書いたのは回答者の方が思う一番を回答していただくのが、それぞれの根拠や理屈があってよいかなとおもったからですね。
回答3件
あなたの回答
tips
プレビュー