c# – 使用linq从分号分隔的字符串创建字典

c# – 使用linq从分号分隔的字符串创建字典,第1张

概述所以我有一个字符串: "some key:some value; john:doe;age:234" 我已经写了一个方法,它接受这个字符串并返回一个: Dictionary<string,string> 如果有人能通过linq做到这一点很奇怪吗? 假设分隔符不能出现在键或值中: var dict = str.Split(';') .Select(s => s.Split 所以我有一个字符串:

"some key:some value; john:doe;age:234"

我已经写了一个方法,它接受这个字符串并返回一个:

Dictionary<string,string>

如果有人能通过linq做到这一点很奇怪吗?

解决方法 假设分隔符不能出现在键或值中:

var dict = str.Split(';')              .Select(s => s.Split(':'))              .ToDictionary(a => a[0].Trim(),a => a[1].Trim()));

这不是最快的方法,但它是最简单的方法.

你也可以使用正则表达式:

static Readonly Regex parser = new Regex(@"([^:]):([^;])");var dict = parser.GetMatches(str)                 .Cast<Match>()                 .ToDictionary(m => m.Groups[0].Value.Trim(),m => m.Groups[0].Value.Trim()                 );
总结

以上是内存溢出为你收集整理的c# – 使用linq从分号分隔的字符串创建字典全部内容,希望文章能够帮你解决c# – 使用linq从分号分隔的字符串创建字典所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存