免责声明:也许是微 YAGNI 优化,但听我说..
问题是实现一个不区分大小写的查找表。
- 我的老派方式:在填充字典时,在插入之前将键大写。当有人给你一个查找键时,将键大写。
- 新方法(我今天了解了): Dictionary 接受了 IComparer 实现,所以我可以传入
StringComparer.InvariantCultureIgnoreCase
. 我认为它会委托给 String.Compare(x, y, SomeIgnoreCaseEnum)
新方法的一个优点是我不需要确保在对字典进行查找的 n 个位置中的每一个位置都执行 .ToUpper() 。
我的问题是哪一个更有效?只是好奇我猜...
更新:注意我不需要知道插入的原始密钥。此外,使用的密钥与文化无关。