【问题标题】:How to compare in IF condition如何在 IF 条件下进行比较
【发布时间】:2018-04-24 03:39:46
【问题描述】:

我正在从 SQL 返回一个值。让我们将其命名为ReturnedFromSQL。在我的应用程序中,我提供了一个输入。让我们将其命名为Input。我想比较这两个并做一个活动。目前,我正在使用IFcondition 执行此操作。 假设,从 SQL 我得到FAB01,作为输入我得到Fab01。我想要做的是在比较这两个之后跳转到ELSEpart,如果这两个不相同,如果这两个相同,则执行IFpart。 很明显,只是字母发生了变化,但想法是一样的。由于这两个相同,我需要执行IFpart 中的内容,而不是跳转到ELSE。但它现在没有发生。我怎么做?谁能帮我?先感谢您。

IF (ReturnedFromSQL == Input )
{
 return RedirectToAction("Exist");
}
else
{
//Doing Something
}

【问题讨论】:

  • 您需要通过忽略大小写进行比较。
  • 使用sql时也可以使用like语句
  • ReturnedFromSQL.Equals(Input , StringComparison.InvariantCultureIgnoreCase)。并删除 else 并在没有 else 块的情况下编写代码。

标签: c# if-statement model-view-controller compare


【解决方案1】:

假设ReturnedFromSQLInput 都是字符串。此代码会将两个值都转换为较低的值以进行比较,因此如果任何字符串具有相同的字符但在不同的级别(上/下)没有问题

if (ReturnedFromSQL.ToLower().Trim() == Input.ToLower().Trim() )
{
 return RedirectToAction("Exist");
}
else
{
//Doing Something
}

【讨论】:

  • 你不需要别的。
  • @CodingYoshi 他直接从问题中提取了这部分内容。尽管代码在没有 else 的情况下仍然可以工作。它仍然提供了一些安全性。如果 OP 希望使用 else 没有害处
  • @nevillenazerane 不需要不需要的代码。时期。因此,它对我有害。否则你也可以在那里放一个循环。它提供什么安全性?
  • 它提供的安全性是:当您编辑 if 块时,您忘记了返回部分,您会收到编译时警告。这些都是发生的事情。
  • 你为什么想要一个循环。这实际上是不需要的。
【解决方案2】:

您可以使用string.Equals()。最好的部分是您不需要显式修剪或小写。

if(string.Equals(ReturnedFromSQL, Input, StringComparison.CurrentCultureIgnoreCase))
{
  return RedirectToAction("Exist");
}

【讨论】:

  • 谢谢。它确实帮助我解决了问题。
【解决方案3】:

如果您遵循其他一些答案中的建议,请小心。 ToLower() 仅在英语和少数其他语言中是安全的。在许多语言中,同一字母或字母组合可能有多个大写/小写表示,或者某些重音可能被视为相等或不相等,从而破坏了这种逻辑。有龙。

试试这个,根据您的用例更改 StringComparison:

using System;

public class Program
{
    public static void Main()
    {
        string ReturnedFromSQL = "FAB01";
        string Input = "Fab01";
        if (String.Equals(ReturnedFromSQL, Input, StringComparison.CurrentCultureIgnoreCase))
        {
            Console.WriteLine("Equal");
        }
        else
        {
            Console.WriteLine("Different");
        }
    }
}

【讨论】:

  • 感谢您的明确答复。这对我很有帮助。
【解决方案4】:

如果两个值都是字符串,那么您可以在双方上应用 ToLower() 和 Trim()(如 x.Trim().ToLower())函数以获得统一的值。但即使没有,你仍然应该很好,所以我想问题是别的。我建议调试条件并检查双方的值,看看其中一方是否为空或为空。

【讨论】:

    【解决方案5】:

    你的条件可以使用Equals

    if (String.Equals(ReturnedFromSQL, Input, StringComparison.OrdinalIgnoreCase))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 2022-12-26
      • 1970-01-01
      • 2018-11-07
      • 2013-06-27
      相关资源
      最近更新 更多