我从SQL返回一个值。我们将其命名为ReturnedFromSQL
。在我的申请中,我正在给出一个输入。我们将其命名为Input
。我想比较这两个并做一个活动。目前,我正在使用IF
条件执行此操作。
让我们说,从SQL我得到FAB01
并作为输入我得到Fab01
。我想要做的是在比较这两个之后跳转到ELSE
部分如果这两个不相同并且如果这两个相同则执行IF
部分。
很明显,只是字母改变了,但想法是一样的。由于这两者是相同的,我需要执行IF
部分中的内容而不是跳转到ELSE
。但现在还没有发生。我怎么做?谁能帮我?先感谢您。
IF (ReturnedFromSQL == Input )
{
return RedirectToAction("Exist");
}
else
{
//Doing Something
}
答案 0 :(得分:2)
假设ReturnedFromSQL
和Input
都是字符串。此代码会将值转换为较低值以进行比较,因此如果任何字符串具有相同的字符但处于不同的级别(上/下),则没有问题
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))