c# - 如何将这个字符串拆分成 Dictionary<string,string>?

标签 c# .net string dictionary split

<分区>

我有以下字符串:

{"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]);

但它会抛出索引越界错误。是否有一些类似的语法可以工作?

最佳答案

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

您可以使用 JsonConvert相反:

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

关于c# - 如何将这个字符串拆分成 Dictionary<string,string>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485281/

相关文章:

java - find Minimum window substring - leetcode - 解决方案不工作

regex - 如何删除r中字符串中带有 "("的单词?

c# - 在 Visual Studio 中将 Embed Interop Types 设置为 true 和 false 有什么区别?

c# - AWS 环境中的 WCF UserNameTransport 错误 - 收到不安全或不正确保护的故障

c# - 为什么我不能在扩展 List 的类中调用 OrderBy?

.net - 在 Windows Mobile 中找不到 PInvoke DLL 错误

python - 对保存列表的变量使用算术运算符

c# - LINQ Group By 多列并进行计数

c# - Ocelot 不将 websocket 传递给微服务

c# - WPF 中的 Application.DoEvents() 在哪里?