【问题标题】:Array of concatenated strings into Dictionary<int, int>连接字符串数组到 Dictionary<int, int>
【发布时间】:2014-11-27 16:30:40
【问题描述】:

我有一个字符串数组。每个字符串是两个用“|”分隔的数字。

如何在不循环数组、拆分每个字符串并添加到字典的情况下将这个字符串数组放入Dictionary&lt;int,int&gt;

有没有更好的办法?

【问题讨论】:

    标签: c# arrays dictionary


    【解决方案1】:

    简单地说,

    var result = strings
        .Select(s => s.Split('|'))
        .ToDictionary(a => int.Parse(a[0]), a => int.Parse(a[1]));
    

    如果允许重复,

    var result = strings
        .Select(s => s.Split('|'))
        .ToLookup(a => int.Parse(a[0]), a => int.Parse(a[1]));
    

    【讨论】:

      【解决方案2】:

      你可以使用ToDictionary方法:

      var dictionary = stringArray.ToDictionary(x => x.Split('|')[0], x => x.Split('|')[1]);
      

      但你应该知道,如果有重复的键,这将引发异常。

      【讨论】:

      • 当然,当答案就在你面前时,这非常明显......谢谢
      • 为什么要拆分两次,太浪费了
      猜你喜欢
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多