スキップしてメイン コンテンツに移動

LinqでDictionaryを作る方法

DictionaryデータをLinqを使って短い行数で作る方法をまとめてみる。


最初に思いつく下記の方法では、作れないことを覚えておこう。よく間違うので。

/// A,B,CをキーとするDictionaryを作りたい
List<string> lst = new List<string>() { "A", "B", "C" };
var di = lst.Select(s => new KeyValuePair<string, int>(s, 10));

正解は、ToDictinaryメソッドを使う。

var di2 = lst.ToDictionary(s => s, s => 10);

すると、ちゃんとDictionaryオブジェクトができている。


しかし、Linqメソッドのヘルプに書いてあるシンタックスのわかりにくさは、なんとか簡単にできないものなのかしら。呪文のようで理解しようとする気を失わせる。


書き方がわかれば、表示されている通りなのだけど。

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

簡略化して、こんな感じで覚えておけばよいかも。

ToDictionary(TSource => TKey, TSource => TElement)


コメント

このブログの人気の投稿

SQLでは文字列の前に「N」が必要だ

SQLServerのテーブルにテキストを登録したら一部の文字が文字化けした。環境依存文字だと化けるみたい。

コンボボックスのDataSourceプロパティの使い方

コンボボックスに表示するデータを設定するのを簡単にする工夫をまとめます。コンボボックスのDataSourceプロパティを上手に使いましょう。(2017/8/30追記)