其中为StringComparer.OrdinalIgnoreCase的大小写转换方法

本文关键字:大小写 转换方法 OrdinalIgnoreCase StringComparer | 更新日期: 2023-09-27 18:12:30

在下面的简单方法中,对于字符串比较器,我调用相应的ToLower()方法。是否有StringComparer.OrdinalIgnoreCase的案例转换方法暴露在框架的某个地方?

Function ToLowerIfCaseInsensitiveComparison(s As String, cmp As StringComparison) As String
    Select Case cmp
        Case StringComparison.CurrentCultureIgnoreCase
            Return s.ToLower()
        Case StringComparison.InvariantCultureIgnoreCase
            Return s.ToLowerInvariant()
        Case StringComparison.OrdinalIgnoreCase
            Return ___________________ ' expecting your answers
        Case Else
            Return s
    End Select
End Function

(c#或VB -任何你喜欢的。答案可能与语言无关)


UPDATE:我必须纠正自己关于小写转换:在。net框架中使用字符串的最佳实践说

使用字符串。ToUpperInvariant方法代替字符串。ToLowerInvariant方法,当您规范化字符串进行比较时。

其中为StringComparer.OrdinalIgnoreCase的大小写转换方法

StringComparison。OrdinalIgnoreCase可以用作string的参数。= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

在c#:

var string1 = "Hello";
var string2 = "hello";
Console.WriteLine(string1.Equals(string2, StringComparison.OrdinalIgnoreCase));
// Output: true

序数比较基于字符串中每个Char的数值(Unicode码点)。如果想以顺序比较的格式返回字符串,可以使用以下方法:

string GetUnicodeString(string s)
{
    StringBuilder sb = new StringBuilder();
    foreach (char c in s)
    {
        sb.Append("''u");
        sb.Append(String.Format("{0:x4}", (int)c));
    }
    return sb.ToString();
}