如何在IF条件下进行比较

时间:2018-04-24 03:39:47

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

我从SQL返回一个值。我们将其命名为ReturnedFromSQL。在我的申请中,我正在给出一个输入。我们将其命名为Input。我想比较这两个并做一个活动。目前,我正在使用IF条件执行此操作。 让我们说,从SQL我得到FAB01并作为输入我得到Fab01。我想要做的是在比较这两个之后跳转到ELSE部分如果这两个不相同并且如果这两个相同则执行IF部分。 很明显,只是字母改变了,但想法是一样的。由于这两者是相同的,我需要执行IF部分中的内容而不是跳转到ELSE。但现在还没有发生。我怎么做?谁能帮我?先感谢您。

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

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

如果您遵循其他一些答案中的建议,请务必小心。 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");
        }
    }
}

答案 3 :(得分:1)

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

答案 4 :(得分:1)

您的情况可以使用Equals

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