我有一个这样的字符串列表["saman=1", "kaman=2"]
如何将其转换为{Saman:1 , kaman:2}
strList.Select(k,v =>new {k,v} , k=> k.split('=')[0], val => v.split('=')[1]);
答案 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);
请注意,如果有任何重复的密钥,这将失败 - 我认为没问题?