在很多地方,我使用 == 运算符来比较字符串,现在我知道这考虑了大小写...无论如何我可以调整文化设置来避免这种情况,还是我必须去每个代码行并将其更改为
string.Compare(a,b,StringComparison.CurrentCultureIgnoreCase)
最佳答案
字符串扩展方法怎么样?:
public static class StringExtensions {
public static bool EqualsIC(this string self, string string1) {
return self.Equals(string1, StringComparison.InvariantCultureIgnoreCase);
}
}
然后你就可以使用了
string string1 = "Hello world";
string string2 = "hEllO WOrLD";
bool theymatch = string1.EqualsIC(string2);
// OR (per TimS' comment) - to avoid error if string1 is null
theymatch = StringExtensions.EqualsIC(string1, string2);
作为一种深奥的替代方法,您可以使用 Regex 而不是 String.Compare:
public static bool EqualsICRX(this string self, string string1) {
return Regex.IsMatch(string1, "^" + self + "$", RegexOptions.IgnoreCase);
}
关于c# - 全局覆盖 == 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9266617/