C#split,返回数组中的键/值对

时间:2011-02-13 02:43:07

标签: c# database split

我是C#的新手,因此我正在寻找外行的条款。基本上,我想做的是转:

key1 = val1 | key2 = val2 | ... | keyN = valN

进入数据库数组,你猜对了,key1返回val1,key2返回val2等等。我知道我可以使用split返回一个字符串,但从那时起,我就不知所措了。任何帮助将不胜感激!我希望我的意图明确,但如果您有任何疑问,请不要犹豫!

3 个答案:

答案 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]);

现在dictDictionary<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());