我使用这样的字符串:
Norway, true; Sweden, false; England, null; Denmark, false;
我正在尝试将其转换为Dictionary<string, bool?>
,以便我可以使用它,删除项目,与其他内容进行比较。当我完成后,我想将字典转换回类似的字符串并保存。
有什么想法吗?
答案 0 :(得分:6)
您可以使用Split
方法和LINQ:
var dict = str.Split(';')
.Select(s => s.Split(','))
.ToDictionary(
p => p[0].Trim()
, p => p[1].Trim().Equals("null") ? null : (bool?)(bool.Parse(p[1].Trim()))
);
转换回来更容易:
var res = string.Join("; ", dict.Select(
p => string.Format(
"{0}, {1}"
, p.Key
, p.Value.HasValue ? p.Value.ToString().ToLowerCase() : "null"
)
));