首页 > 解决方案 > 编写使字符串等于其他内容的 if 语句的最佳方法是什么

问题描述

我正在做一个项目,需要将从 0、1 或 2 开始的旧数据设置为简单地等于一个级别。

if (dr["Acct"].ToString().Substring(0,1) == "0"
    || dr["Acct"].ToString().Substring(0,1) == "1"
    || dr["Acct"].ToString().Substring(0,1) == "2")
{
    // then Level = Balance Sheet
}

我本质上是想说如果子字符串是 0、1 或 2,那么它应该等于称为资产负债表的级别。

标签: c#string

解决方案


字符串操作很昂贵,这可能是一种更易读的方法。

string acctVal = dr["Acct"]?.ToString();
char[] balanceSheetVals= {'0', '1', '2'};

if(!String.IsNullOrEmpty(acctVal))
{
   if(balanceSheetVals.contains(acctVal[0]))
   {
      Level = "Balance Sheet";
   }
   else
   {
      //defaults
   }
}
else
{
   //defaults
}

编辑:@Rotem 的大部分道具都清理了很多


推荐阅读