日期:2014-05-18 浏览次数:21067 次
private string getStatus(int status) { string strStatus = ""; if(status.toString().Trim().Equals("status.name.good")) { strStatus = "status.value.good"; }else if(status.toString().Trim().Equals("status.name.bad")) { strStatus = "status.value.bad"; }else if(status.toString().Trim().Equals("status.name.normal")) { strStatus = "status.value.normal"; } return strStatus; }
private string getStatus(int status) { string strStatus = ""; switch (status.ToString().Trim()) { case "status.name.good": strStatus = "status.value.good"; break; case "status.name.bad": strStatus = "status.value.bad"; break; case "status.name.normal": strStatus = "status.value.normal"; break; default: break; } return strStatus; }
------解决方案--------------------
strStatus = new System.Text.RegularExpressions.Regex(@"status.value.\w+").Match(status.ToString().Trim()).Value;
我只是怀疑,int类型的status在ToString怎么可能等于那些字符串?
------解决方案--------------------
比较好的办法是定义个全局变量的字典 SortedList<int, string> slist = new SortedList<int, string>(); 启动时就把配置文件里和这有关的读到字典里 string[] arr = { "good", "bad", "normal" }; foreach (var item in arr) { slist.Add(int.Parse(Util.getValue("status.name." + item)), Util.getValue("status.value." + item)); } 查询方法 private string getStatus(int status) { string str; slist.TryGetValue(status, out str); return str; }