You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# VSTO Excel插件代码优化咨询:简化多条件判断逻辑

优化方案:用字典映射简化多条件判断

针对你这段VSTO代码,最简洁的优化方式是用字典存储编码与对应值的映射关系,替代繁琐的if-else判断,同时简化单元格赋值的冗余逻辑。优化后的代码如下:

// 定义编码和对应输出值的映射表,后续加新规则直接加键值对就行
var codeToValue = new Dictionary<string, string>
{
    {"6510005510209015", "15"},
    {"57100060001320", "30"}
};

// 获取C列要遍历的范围
var cColumnRange = xlWS.Range["C2:C" + xlWSlastRow];
for (int i = 1; i <= cColumnRange.Cells.Count; i++)
{
    // 读取当前C列单元格的值,空值做安全处理
    string currentCode = cColumnRange.Cells[i].Value?.ToString();
    
    // 从映射表取值,找不到就用默认值"1"
    string targetValue = codeToValue.TryGetValue(currentCode, out var value) ? value : "1";
    
    // 直接给对应行的E列赋值,不用嵌套遍历单个单元格
    xlWS.Range["E" + (i + 1)].Value = targetValue;
}

优化细节说明

  • 替换多条件判断:把原来的if-else逻辑换成字典映射,后续新增药物编码和对应值时,只需要在字典里加一行键值对,不用修改判断逻辑,扩展性强很多。
  • 简化单元格操作:
    • 用for循环替代foreach加rowNum计数的方式,逻辑更直观;
    • 单个单元格不需要嵌套foreach,直接通过Range定位赋值,减少冗余代码。
  • 空值安全处理:用?.ToString()避免单元格为空时出现空引用异常,比原代码更健壮。

额外提示

如果你以后需要批量添加更多编码规则,还可以把字典的键值对存在配置文件里,不用改代码就能更新规则,适合团队协作场景。

内容的提问来源于stack exchange,提问作者asmcrae1997

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:43:36