我有一个字符串列表这样["saman=1", "kaman=2"]
我如何可以将其转换为一个字典一样{Saman:1 , kaman:2}
转换字符串列表字典
strList.Select(k,v =>new {k,v} , k=> k.split('=')[0], val => v.split('=')[1]);
我有一个字符串列表这样["saman=1", "kaman=2"]
我如何可以将其转换为一个字典一样{Saman:1 , kaman:2}
转换字符串列表字典
strList.Select(k,v =>new {k,v} , k=> k.split('=')[0], val => v.split('=')[1]);
这应该工作:
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]))
您应该首先拆分", "
,然后将每个项目拆分=
以获取键/值对。
附加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]);
非常,非常简单地使用LINQ:
IDictionary<string, string> dictionary =
list.ToDictionary(pair => pair.Key, pair => pair.Value);
需要注意的是,如果有任何重复键,这将失败 - 我认为这是好吗?
这是行不通的。因为他有一个'List'而不是'List '' –