c# - 处理 (2 raise to n) -1 条件

标签 c# logic

我有一个逻辑问题。我收集了员工对象 有 3 个具有句柄的过滤条件条件 例如员工姓名,办公室名称,工资。

现在这些过滤条件应该匹配(员工姓名和/或办公室名称和/或薪水)

所以这里我必须写 (2 raise n) -1 if 条件来处理这种情况。

有没有其他方法可以做到这一点。 对于(员工姓名和/或办公室名称)条件,我正在执行以下操作

if (criteria.EmpName != "" && criteria.OfficeName != "")
    {  
      if (emp.EmpName == criteria.EmpName && emp.OfficeName == criteria.OfficeName) 
        {
              bIsMatch = true;
         }
    }
    else
    {
          if (criteria.EmpName != "" && emp.EmpName == criteria.EmpName)
             bIsMatch = true;
          else if (criteria.OfficeName != "" && emp.OfficeName == criteria.OfficeName)
            bIsMatch = true;
    }

现在如果还必须处理 saraly,我至少要写 5 个条件。

还有其他方法吗?

最佳答案

有很多方法可以做到这一点,但由于您没有指定一种特定的语言,而且我觉得没有资格判断您的编码风格,这里有一个保持代码的一般形式,同时演示一些更好的逻辑:

bool bIsMatch = true;
if (criteria.EmpName != "" && criteria.EmpName != emp.EmpName) {
    bIsMatch = false;
} else if (criteria.OfficeName != "" && criteria.OffIceName != emp.OfficeName) {
    bIsMatch = false;
} /* Repeat for as many conditions as there are */

if (bIsMatch) {
    /* None of the checks above failed */
}

关于c# - 处理 (2 raise to n) -1 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141470/

相关文章:

c# - 粗圆检测

测试梯形图逻辑

java - 帕斯卡的三角形 Java 实现

javascript - 条件 jQuery 切换函数

c# - 用直线而不是矩形在 Canvas 上绘制网格图案

c# - Azure 文件存储 SAS token - 错误 403

c# - 哪个组件正在处理 ASP.NET Core 中的线程分配?

c# - 实例化一个内部类并将其转换为给定类型

java - 在同一 Activity 中按后退按钮的正确实现是什么?

c++ - 6x6 数独游戏,找出你所在的部门