StringComparer.OrdinalIgnoreCase

StringComparer.OrdinalIgnoreCase 是 .NET 提供的不区分大小写、且按 Unicode 码位排序的字符串比较器,适用于哈希表、字典、集合、排序等需要显式指定比较规则的地方。

1. 核心特点


特性说明
比较规则 不区分大小写(A == a)
排序规则 纯 Unicode 码位顺序(文化无关)
性能 比文化敏感比较器(CurrentCultureIgnoreCase)快
线程安全 单例,可共享

2. 常见场景

 
// 1. 字典忽略大小写
var dict = new Dictionary<string, int>(
            StringComparer.OrdinalIgnoreCase);
dict["abc"] = 1;
Console.WriteLine(dict["ABC"]); // 输出 1

// 2. 集合去重
var hs = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
hs.Add("aaa");
hs.Add("AAA"); // 不会重复插入

// 3. 字符串相等判断
bool eq = string.Equals("Foo", "FOO", StringComparison.OrdinalIgnoreCase);
// 等价于
bool eq = StringComparer.OrdinalIgnoreCase.Equals("Foo", "FOO");
 

3. 与其他比较器对比


比较器大小写文化敏感适用场景
Ordinal 区分 哈希、加密、协议
OrdinalIgnoreCase 不区分 配置键、HTTP 头、缓存键
CurrentCulture 区分 用户界面排序
CurrentCultureIgnoreCase 不区分 用户输入模糊匹配

4. 一句话记忆

**“内部标识、配置、缓存”**一律用 OrdinalIgnoreCase——快、准、与文化无关。
posted @ 2025-09-18 18:16  yinghualeihenmei  阅读(69)  评论(0)    收藏  举报