"Dictionary(StringComparer)"和"Dictionary"以及存储key.ToUpper:你应该选择哪一个?"
"Dictionary(StringComparer)"和"Dictionary"以及存储key.ToUpper:你应该选择哪一个?"
免责声明:可能会出于微观 YAGNI 优化目的,但听我说完...
问题是要实现一个不区分大小写的查找表。
我旧式的方法:在填充字典时,在插入键之前将键转换为大写。当有人给你一个要查找的键时,将键转换为大写。
新方式(我今天了解到):字典使用 IComparer 实现,因此我可以传递 StringComparer.InvariantCultureIgnoreCase。我认为它会委托 String.Compare(x,y,SomeIgnoreCaseEnum)
新方法的优势在于我不需要确保在针对字典进行每个查找的 n 个位置上都执行 .ToUpper()。
我的问题是哪一个更有效率? 我想只是好奇...
更新:请注意,我不需要知道插入的原始键。使用的键与文化无关。
admin 更改状态以发布 2023年5月21日