{"key", "value", "key", "value", "key", "value"}という感じで値の格納されたstringの配列からDictionaryに変換するというお題。自分の頭では、これが限界でした。何か気持ち悪い・・・。
var arr = new[] {"1", "one", "2", "two"}; var dict = arr.Aggregate( new { Dict = new Dictionary<string, string>(), Prev = default(string) }, (s, v) => { if (s.Prev == null) { return new { s.d, Prev = v }; } s.Dict.Add(s.Prev, v); return new { s.Dict, Prev = default(string) }; }).Dict;