加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:17:07 所属栏目:百科 来源:网络整理
导读:所以我有一个字符串: "some key:some value; john:doe;age:234" 我已经写了一个方法,它接受这个字符串并返回一个: Dictionarystring,string 如果有人能通过linq做到这一点很奇怪吗? 解决方法 假设分隔符不能出现在键或值中: var dict = str.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()
                 );

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读