-5

我有这行代码

acctStatusLabel.Text = acct.acctStatusCode == "APPR" || acct.acctStatusCode == "IACT"
                                       ? "Inactive"
                                       : "Closed";

我需要做的是更改它,以便 APPR 状态代码显示“已批准”,而 IACT 状态代码显示“非活动”

这是完整的代码集

if (acct.acctStatusCode == "DORM")
            acctStatusLabel.Text = "Dormant";
        else
            acctStatusLabel.Text = acct.acctStatusCode == "APPR" || acct.acctStatusCode == "IACT"
                                       ? "Inactive"
                                       : "Closed";
4

5 回答 5

4

像这样?

switch(acct.acctStatusCode)
{
    case "DORM":
        acctStatusLabel.Text = "Dormant";
        break;
    case "APPR":
        acctStatusLabel.Text = "Approved";
        break;
    case "IACT":
        acctStatusLabel.Text = "Inactive";
        break;
    default:
        acctStatusLabel.Text = "Closed";
        break;
}

更好的选择可能是使用静态字典:

{somewhere else}
private static Dictionary<string, string> Codes = new Dictionary<string, string>();

{in static constructor}
Codes.Add("DORM","Dormant");
Codes.Add("APPR","Approved");
Codes.Add("IACT","Inactive");

您的代码将类似于:

// set default value
acctStatusLabel.Text = "Closed";
// lookup decoded value
if(Codes.ContainsKey(code))
    acctStatusLabel.Text = Codes[code];

更好的方法是将代码/解码放在数据库表或其他可以更改而无需重新编译您的应用程序的数据源中。

于 2013-09-26T17:59:19.320 回答
2

这应该可以解决问题:

switch (acct.acctStatusCode)
{
    case "DORM":
        acctStatusLabel.Text = "Dormant";
        break;
    case "APPR":
        acctStatusLabel.Text = "Approved";
        break;
    case "IACT":
        acctStatusLabel.Text = "Inactive";
        break;
    default:
        acctStatusLabel.Text = "Closed";
}

但是,最好将该逻辑移入acct对象本身。像这样的东西:

public string StatusCodeText
{
    get
    {
        switch (acctStatusCode)
        {
            case "DORM":
                return "Dormant";
            case "APPR":
                return "Approved";
            case "IACT":
                return "Inactive";
        }
        return "Closed";
    }
}

然后使用它变得简单得多:

acctStatusLabel.Text = acct.StatusCodeText;

“智能数据结构和愚蠢的代码比其他方式工作得更好。” - 埃里克·S·雷蒙德

于 2013-09-26T18:02:53.333 回答
1
switch(acct.acctStatusCode)
{
    case "DORM":
        acctStatusLabel.Text = "Dormant";
        break;
    case "APPR":
    case "IACT":
        acctStatusLabel.Text = "Inactive";
        break;
    default:
        acctStatusLabel.Text = "Closed";
        break;
}
于 2013-09-26T17:59:37.807 回答
0

像这样的东西

switch(acct.acctStatusCode) {
    case "DORM" : acctStatusLabel.Text = "Dormant"; break;
    case "APPR" : case "IACT" : acctStatusLabel.Text = "Inactive"; break;
    default : acctStatusLabel.Text = "Closed"; break;
}
于 2013-09-26T18:00:33.277 回答
-1

做就是了

if status =="xxxx"
   text="XXXX"
else if status == "yyy"
   text = "YYY"
else 
   text = "QQQ"

我知道这不是确切的代码。我的意思是我建议停止尝试用 ? 等等

于 2013-09-26T18:00:12.597 回答