我是C#的新手,因此我正在寻找外行的条款。基本上,我想做的是转:
key1 = val1 | key2 = val2 | ... | keyN = valN
进入数据库数组,你猜对了,key1返回val1,key2返回val2等等。我知道我可以使用split返回一个字符串,但从那时起,我就不知所措了。任何帮助将不胜感激!我希望我的意图明确,但如果您有任何疑问,请不要犹豫!
答案 0 :(得分:54)
string s = "key1=val1|key2=val2|keyN=valN";
var dict = s.Split('|')
.Select(x => x.Split('='))
.ToDictionary(x => x[0], x => x[1]);
现在dict
是Dictionary<string, string>
,具有所需的键/值对。
答案 1 :(得分:8)
Dictionary<string,string> results = new Dictionary<string,string>();
foreach(string kvp in source.split('|'))
{
results.Add(kvp.split('=')[0], kvp.split('=')[1]);
}
可能是Linq的做法。
答案 2 :(得分:4)
string s = "key1=val1|key2=val2|keyN=valN";
var dict = s.Split('|')
.Select(x => x.Split('='))
.Where(x => x.Length > 1 && !String.IsNullOrEmpty(x[0].Trim())
&& !String.IsNullOrEmpty(x[1].Trim()))
.ToDictionary(x => x[0].Trim(), x => x[1].Trim());