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

Jos*_*osh 13 c# database split

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

键1 = VAL1 |键2 =值2 | ... | keyN = VALN

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

jas*_*son 58

string s = "key1=val1|key2=val2|keyN=valN";
var dict = s.Split('|')
            .Select(x => x.Split('='))
            .ToDictionary(x => x[0], x => x[1]);
Run Code Online (Sandbox Code Playgroud)

现在dict是一个Dictionary<string, string>具有所需的键/值对.

  • 添加了异常处理.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()); (3认同)

Kyr*_*yro 8

Dictionary<string,string> results = new Dictionary<string,string>();
foreach(string kvp in source.split('|'))
{
    results.Add(kvp.split('=')[0], kvp.split('=')[1]);
}
Run Code Online (Sandbox Code Playgroud)

可能是Linq这样做的方式.