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;
}这个IF ELSE有些规律大家帮忙重构一下。
{
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;
}
{
string str = status.ToString().Trim();
return str.Substring(0, str.IndexOf('.') + 1) + "value" + str.Substring(str.LastIndexOf('.'));
}
我只是怀疑,int类型的status在ToString怎么可能等于那些字符串?
{
strStatus = Util.getValue("status.value.good");
}else if(status.toString().Trim().Equals(Util.getValue("status.name.bad")))
{
strStatus = Util.getValue("status.value.bad");
}else if(status.toString().Trim().Equals(Util.getValue("status.name.normal")))
{
strStatus = Util.getValue("status.value.normal");
}
我的配置文件是像这样的
status.name.good = 0
status.value.good = 好的
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;
}