在C#中不区分大小写的比较

这个问题在这里已经有了答案:

  • 不区分大小写'包含(字符串)'22个答案

  • string.Equals("this will return true", "ThIs WiLL ReTurN TRue", StringComparison.CurrentCultureIgnoreCase)

    或者,包含

    if (string1.IndexOf(string2, StringComparison.CurrentCultureIgnoreCase) >= 0)


    我更喜欢这样的扩展方法。

    public static class StringExtensions
    {
        public static bool Contains(this string source, string value, StringComparison compareMode)
        {
            if (string.IsNullOrEmpty(source))
                return false;
    
            return source.IndexOf(value, compareMode) >= 0;
        }
    }
    

    请注意,以这种方式可以避免大写或小写的代价高昂的转换。

    您可以使用此语法调用扩展

     bool result = "This is a try".Contains("TRY", StringComparison.InvariantCultureIgnoreCase);
     Console.WriteLine(result);
    

    请注意:上面的扩展(对于每个扩展方法都是true)应该在非嵌套的非泛型静态类中定义。请参阅MSDN Ref


    为什么不这样做:

    if (string1.IndexOf(string2, StringComparison.OrdinalIgnoreCase) >= 0)
    {  
    }
    
    链接地址: http://www.djcxy.com/p/13083.html

    上一篇: Case Insensitive comparison in C#

    下一篇: Find a substring in a case