如何将此字符串拆分为Dictionary<;字符串,字符串>;

本文关键字:字符串 gt lt Dictionary 拆分 | 更新日期: 2023-09-27 17:57:57

我有以下字符串:

{"key1":"value1","key2":"value2,some other part of value2"}

我可以使用以下长语法来拆分它:

var s = someString.Split(new[] {"'",'""}, StringSplitOptions.RemoveEmptyEntries);
var firstEntryValue = s[0].Split(':')[1];
var secondEntryValue = s[1].Split(':')[1];

既然这个字符串基本上是一个Dictionary<string,string>,我怎么能在一行中把整个东西拉到那个类型中呢?

我见过这样的东西:

var s = someString.Split(new[] {"'",'""}, StringSplitOptions.RemoveEmptyEntries)
  .Select(p => p.Split(':'))
  .ToDictionary(split => split[0], split => split[1]);

但它抛出和索引界外错误。是否有类似的语法可以使用?

如何将此字符串拆分为Dictionary<;字符串,字符串>;

由于字符串遵循JSON格式,拆分它不是一个好的选择——正是因为您提到的问题。

您可以使用JsonConvert代替:

var res = JsonConvert.DeserializeObject<Dictionary<string,string>>(inputString);