我有这个输入字符串,需要提取Uid,pwd和Dsn属性的值... 我正在使用分割值; char然后替换Uid =“”这就是我如何读取其他属性的值......
String[] test = "Uid=test;Pwd=abc;dsn=xxx".split(';')
id = test[0].Replace("Uid=", "");
pwd = test[0].Replace("Pwd", "");
datasrc = test[0].Replace("Dsn", "");
有没有更好的方法从string []中提取值?
答案 0 :(得分:3)
我建议使用Dictionary<String, String>
和是, Linq 将初始字符串实现到其中:
string test = "Uid=test;Pwd=abc;dsn=xxx";
Dictionary<string, string> dict = test
.Split(';')
.Select(item => item.Split('='))
.ToDictionary(pair => pair[0], pair => pair[1], StringComparer.OrdinalIgnoreCase);
...
var id = dict["Uid"];
var pwd = dict["Pwd"];
var datasrc = dict["Dsn"]; // please, notice that the name is case insensitive
答案 1 :(得分:0)
您可以在拆分后进行投影,然后拆分 = 字符并选择第二个索引,但只有在保证字符串始终采用此格式的情况下才会起作用,那么这应该适用于你:
var result = "Uid=test;Pwd=abc;dsn=xxx".Split(';')
.Select(x=> x.Split('=')[1]);