c# - 全局覆盖 == 运算符

标签 c# string silverlight

在很多地方,我使用 == 运算符来比较字符串,现在我知道这考虑了大小写...无论如何我可以调整文化设置来避免这种情况,还是我必须去每个代码行并将其更改为

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/

相关文章:

silverlight - MVVM 灯 - 如何访问其他 View 模型中的属性

c# - 如何使用 ffmpeg 进行视频到图像的转换?

c# - 使用横向和纵向文档

c# - 如何在 Media Foundation (Windows 10) 中使用硬件(nvenc) 编码

java - 从括号中获取字符串的正则表达式?

silverlight - 如何在 Silverlight 应用程序中显示 HTML?

c# - 如何让方法调用同一个类中的另一个方法?

c++ - 中继器 :( 问题

null - Paradox 如何管理 null 和空值?

c# - Windows Phone Longlistselector ItemsSource Performance