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)


コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。