0

我正在开发 MVC 应用程序。在控制器中,我编写了简单的代码。

 string LastDesignation = approval.GetDesig(oPA.CreatedById);
    string CurDesignation = loggedEmployee.DType.ToString();
    if (CurDesignation != LastDesignation )
    {
        ApprovalFlow oApproval= new ApprovalFlow(loggedEmployeeId);
       foreach (var item in oApprovalFlow.ApproverEmployees)
          {
                   .
                   .
                   .
          }
    }

问题是在一种情况下,两个字符串变量都包含相同的值,如下所示,但仍然满足 if 条件,并且光标进入 for 循环,它应该从 if 条件中退出......

 CurDesignation = "HOD"
 LastDesignation = "HOD" 

完全困惑,我在 if 循环中处理字符串时是否忘记了什么?

问题解决...

忘记使用 Trim(),其中一个字符串中有一个空格 :)

4

2 回答 2

0

if 条件中的字符串不相等。也许您在调试时遗漏了一些东西,或者它们看起来相同但 unicode 字符不同。但并不相等。尝试将它们保存在某个地方,最好是可以使用十六进制编辑器打开的文件。

于 2013-05-31T11:55:53.120 回答
0

不等于比较大小写和文化......它们可能看起来相同(相同的字符和大小写),但文化或其他一些差异可能不一样。

在 c# 中,!= 和 !equals 具有相同的行为,因此它必须与之前的问题有关。

于 2013-05-31T11:58:58.437 回答