gpt4 book ai didi

.net - Dictionary(StringComparer) vs Dictionary 并存储 key.ToUpper : Which one should you prefer?

转载 作者:行者123 更新时间:2023-12-04 21:50:15 27 4
gpt4 key购买 nike

免责声明:也许是微 YAGNI 优化,但听我说..

问题是实现 不区分大小写 查找表。

  • 我的老派方式:在填充字典时,在插入之前将键大写。当有人给你一个查找键时,将键大写。
  • 新方法(我今天了解了):字典接受了 IComparer 实现,所以我可以传入 StringComparer.InvariantCultureIgnoreCase .我认为它会委托(delegate)给 String.Compare(x, y, SomeIgnoreCaseEnum)

  • 新方法的一个优点是我不需要确保在对字典进行查找的 n 个位置中的每个位置都执行 .ToUpper() 。

    我的问题是哪一个更有效?只是好奇我猜...

    更新:注意我不需要知道插入的原始 key 。此外,使用的 key 与文化无关。

    最佳答案

    大写可能会更有效,因为它可以进行序数比较......但我非常怀疑这对你来说是一个性能瓶颈。与以往一样,在您根据性能提交代码更改之前进行概要分析。

    最终,指定字符串比较:

  • 意味着您不需要那么小心使用字典的方式
  • 意味着原始外壳保留在 key 中,在某些情况下有助于诊断
  • 明确说明您希望如何处理 key 。您最终只在创建时声明一次 - 这会导致更清晰的代码 IMO。
  • 关于.net - Dictionary<string,T>(StringComparer) vs Dictionary<string,T> 并存储 key.ToUpper : Which one should you prefer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689372/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com