c# - 编写使字符串等于其他内容的 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,那么它应该等于称为资产负债表的级别。
解决方案
字符串操作很昂贵,这可能是一种更易读的方法。
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 的大部分道具都清理了很多
推荐阅读
- python - 通过 *loc* 将 np.array 列表分配给 DataFrame 的行子集的奇怪行为
- javascript - 为什么 html2canvas 没有导出我的 JavaScript 工作区?
- css - 将 :nth-child 选择器与 CSS 网格一起使用会产生意想不到的行为
- html - 远距离刷卡离屏
- java - Spring JDBC 在运行 SQL 脚本时无法处理 DECLARE 语句
- scala - scala映射函数中的“NotSerializableException”
- python - 使用 Rapids.ai 版本 0.11+ 将 cuDF 和 cuML 安装到 Colab
- google-cloud-platform - 如何确定资源计费的最小测量周期?
- json - 如何在 xamarin 表单中获取没有键的 JSON 数据
- vue.js - 如何显示带有 costom 主体插槽的扩展项目插槽?