我有很多 if,else if 语句,我知道必须有更好的方法来做到这一点,但即使在搜索 stackoverflow 之后,我也不确定如何在我的特定情况下这样做。
我正在解析文本文件(账单)并根据账单上是否出现某些字符串将服务提供商的名称分配给变量(txtvar.Provider)。
这是我正在做的一个小样本(不要笑,我知道这很乱)。总而言之,大约有 300 个 if 和 else if。
if (txtvar.BillText.IndexOf("SWGAS.COM") > -1)
{
txtvar.Provider = "Southwest Gas";
}
else if (txtvar.BillText.IndexOf("georgiapower.com") > -1)
{
txtvar.Provider = "Georgia Power";
}
else if (txtvar.BillText.IndexOf("City of Austin") > -1)
{
txtvar.Provider = "City of Austin";
}
// And so forth for many different strings
我想使用类似 switch 语句的东西来提高效率和可读性,但我不确定如何比较 BillText。我正在寻找这样的东西,但不知道如何使它工作。
switch (txtvar.BillText)
{
case txtvar.BillText.IndexOf("Southwest Gas") > -1:
txtvar.Provider = "Southwest Gas";
break;
case txtvar.BillText.IndexOf("TexasGas.com") > -1:
txtvar.Provider = "Texas Gas";
break;
case txtvar.BillText.IndexOf("Southern") > -1:
txtvar.Provider = "Southern Power & Gas";
break;
}
我绝对对想法持开放态度。
我需要能够确定评估值的顺序。可以想象,在解析数百个略有不同的布局时,我偶尔会遇到一个问题,即没有明确唯一的指标来说明账单属于哪个服务提供商。