将字符串列表转换为字典

时间:2014-03-12 06:12:14

标签: c#

我有一个这样的字符串列表["saman=1", "kaman=2"] 如何将其转换为{Saman:1 , kaman:2}

等词典
strList.Select(k,v =>new {k,v} , k=> k.split('=')[0], val => v.split('=')[1]);

3 个答案:

答案 0 :(得分:5)

这应该有效:

strList.ToDictionary(x => x.Split('=')[0], x => x.Split('=')[1])

如果您需要Dictionary<string, int>,可以将Value解析为整数:

strList.ToDictionary(x => x.Split('=')[0], x => int.Parse(x.Split('=')[1]))

答案 1 :(得分:1)

您应首先按", "拆分,然后按=拆分每个项目以获取键/值对。

其他Trim来电将在开头摆脱[",在输入字符串末尾摆脱"]

var input = @"[""saman=1"", ""kaman=2""]";

var dict = input.Trim('[', '"', ']')
                .Split(new [] {@""", """}, StringSplitOptions.RemoveEmptyEntries)
                .Select(x => x.Split('='))
                .ToDictionary(x => x[0], x => x[1]);

答案 2 :(得分:0)

非常非常简单地使用LINQ:

IDictionary<string, string> dictionary =
   list.ToDictionary(pair => pair.Key, pair => pair.Value);

请注意,如果有任何重复的密钥,这将失败 - 我认为没问题?