有这样的一组字符串
- C# code
isrequest:true,layer:2,id:0
如我想获取layer的值,上面字符串的值为2,或者想获取isrequest的值,上面为true
请问有什么方法更简单效果更高,我自己先尝试写一个,用数组的方法。
- C# code
public string GetValue(string args, string name) { string[] arr = args.Split(','); for (int i = 0; i < arr.Length; i++) { string[] arr2 = arr[i].Split(':'); if (arr2[0] == name) return arr2[1]; } return String.Empty; }
------解决方案--------------------------------------------------------
这么点数据,不用考虑效率,能取出来就能
------解决方案--------------------------------------------------------
给你个正则方法:
- C# code
string s = "isrequest:true,layer:2,id:0"; string r = Regex.Match(s, @"isrequest:([^,]+)").Groups[1].Value; Response.Write(r);
------解决方案--------------------------------------------------------
string input=@"isrequest:true,layer:2,id:0";
MatchCollection mc=Regex.Matches(input,@"(?i)(\w+):(\w+)");
Dictionary<string,string> dic=new Dictionary<string,string>();
foreach(Match m in mc)
{
dic.Add(m.Groups[1].Value,m.Groups[1].Value);
}
/*
dic中的值
isrequest true
layer 2
id 0
*/
你也可以用split以,和;分隔
------解决方案--------------------------------------------------------
string s = "isrequest:true,layer:2,id:0";
string[] ss = s.Split(new char[] { ',', ':' });