将字符串列表转换为字典

本文关键字:字典 转换 列表 字符串 | 更新日期: 2023-09-27 17:49:42

我有一个类似["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解析为integer:

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);

请注意,如果有任何重复的密钥,这将失败——我想这没关系吧?