如何在执行比较之前将字符串转换为大写,或者是否可以忽略大小写比较字符串
if (Convert.ToString(txt_SecAns.Text.Trim()).ToUpper() ==
Convert.ToString(hidden_secans.Value).ToUpper())
如何在执行比较之前将字符串转换为大写,或者是否可以忽略大小写比较字符串
if (Convert.ToString(txt_SecAns.Text.Trim()).ToUpper() ==
Convert.ToString(hidden_secans.Value).ToUpper())
使用这个:
var result = String.Compare("AA", "aa", StringComparison.OrdinalIgnoreCase);
在C#中进行不区分大小写的字符串比较,可以像这样实现:
string.Equals("stringa", "stringb", StringComparison.CurrentCultureIgnoreCase)
注意!此代码依赖于特定的文化环境;还有其他几个选项可供选择,请参见http://msdn.microsoft.com/en-us/library/system.stringcomparison.aspx。
STRINGA
和stringa
返回false。虽然提问者可能是希望这样的结果,但需要注意文化对于大小写不敏感比较的影响。 - CodesInChaosstring.Equals("stringa", "stringb", StringComparison.InvariantCultureIgnoreCase)
。 - FischermaenStringComparison.OrdinalIgnoreCase
有什么区别? - PatPeter好的,您可以使用String.Equals(String,StringComparison)
方法。只需要根据您的目标传递StringComparison.InvariantCultureIgnoreCase
或StringComparison.CurrentCultureIgnoreCase
即可...
来自MSDN:
String.Compare方法(String,String,Boolean):
public static int Compare(
string strA,
string strB,
bool ignoreCase
)
if( String.Compare(txt_SecAns.Text.Trim(), hidden_secans.Value, true) == 0)
string.Compare(string1, string2, true) == 0将比较这两个字符串是否相等,忽略大小写
就像这样:
if (string.Compare(txt_SecAns.Text.Trim(), hidden_secans.Value.ToString(), true) == 0)
{
// DoSomething
}
true
告诉 string.Compare 忽略大小写。txt_SecAns.Trim().Compare(hidden_secans.Trim(), StringComparison.CurrentCultureIgnoreCase)
StringComparison.CurrentCultureIgnoreCase
:if (txt_SecAns.Text.Trim().Equals(hidden_secans.Value.ToString(), StringComparison.CurrentCultureIgnoreCase))
String.Compare(str1, str2, true);
我个人会将其与适当的文化进行比较,但还有一些尚未被提出:
public bool CompareStrings(string stringA, string StringB)
{
return stringA.ToLower() == stringB.ToLower();
}
"I".ToLower()!="i".ToLower()
。 - CodesInChaos