我有一个字符串格式化:
的字符串-INT,串-INT,串-INT
数据将始终如上所述,我需要完成的是将每个string-int值拆分为字典。有没有人有一个有效的解决方案来实现这个目标?
据我所知,直接用','将字符串拆分,然后用' - '将每个结果拆分成字典是无效的。
答案 0 :(得分:4)
如果您完全确信所有数据都是正确的,您可以使用以下内容:
string
通过“,”符号来源string[]
; 为每个结果元素(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);