С# split, возвращать пары ключ/значение в массиве
Я новичок в С#, и поэтому я ищу условия для непрофессионала. По существу, я бы хотел сделать:
key1 = val1 | key2 = val2 |... | keyN = valN
в массив базы данных, где, как вы догадались, key1 возвращает val1, key2 возвращает val2 и т.д. Я знаю, что могу вернуть строку с использованием split, но с этого момента я не понимаю. Любая помощь будет принята с благодарностью! Надеюсь, я сделал свои намерения ясными, но если у вас есть какие-либо вопросы, не стесняйтесь спрашивать!
Ответы
Ответ 1
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>
с желаемыми парами ключ/значение.
Ответ 2
Dictionary<string,string> results = new Dictionary<string,string>();
foreach(string kvp in source.split('|'))
{
results.Add(kvp.split('=')[0], kvp.split('=')[1]);
}
Вероятно, это делает Linq.
Ответ 3
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());