かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

stringの配列からDictionaryへの変換

{"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;