将带分隔符的字符串解析为字典

时间:2016-01-12 13:16:49

标签: c# split delimiter string-parsing

我有一个字符串格式化:

  

的字符串-INT,串-INT,串-INT

数据将始终如上所述,我需要完成的是将每个string-int值拆分为字典。有没有人有一个有效的解决方案来实现这个目标?

据我所知,直接用','将字符串拆分,然后用' - '将每个结果拆分成字典是无效的。

3 个答案:

答案 0 :(得分:4)

如果您完全确信所有数据都是正确的,您可以使用以下内容:

  • split来源string通过“,”符号来源string[];
  • 为每个元素split通过“ - ”符号;
  • 为每个结果元素(string [] [])convert it to dictionary对。将第一个元素[0]用作键,将cast second element [1]用作整数值作为值;

    Dictionary<string, int> dictionary = sourceString
                .Split(',')
                .Select(element => element.Split('-'))
                .ToDictionary(pair => pair[0], pair => int.Parse(pair[1]));
    

答案 1 :(得分:2)

尝试以下操作。

  var input = "string-1,string2-2,string3-3";
  var splittedByComma = input.Split(',').ToList();
  var dictionary = new Dictionary<string, int>();
  splittedByComma.ForEach(sp => dictionary.Add(sp.Split('-')[0], int.Parse(sp.Split('-')[1])));

答案 2 :(得分:0)

static Dictionary<string, int> convert(string s)
    {
        var t = new Dictionary<string, int>();
        t.Add(s.Split('-')[0], System.Convert.ToInt32(s.Split('-')[1]));

        return t;
    }


var t = "\"test\"-123,\"test\"-123";

var d = t.Split(',').Select(convert);