• 约定编程之 Dictionary 的 String 类型的 Key


    Dictionary 在程序中被大量应用,Key 为 string 类型的应用很多,key 在应用时基本都是按照不区分大小写来取值。
    例:
    public void GetValue(string keyString)
    {
     var key=keyString.ToLower();
     return dict[key];
    }

    如果 GetValue 被频繁调用,则在性能分析器中可以看到 String.ToLower() 占用CPU时间比较长。

    开始的目的是:提高程序的容错性,因此在进行取值时都会进行转换。

    这样就造成了:
    1.越是接近底层 ToLower 和 Equals 方法,越是被频繁调用,从面影响性能。
    2.ToLower 和 Equals 的方法到处飘散,容易出错

    解决方法:
    1.用约定,约定 Dictionary string 类型 Key 在写入时转换为 大写转小写
    毕竟写入的程序次数不多


    为什么:
    1.什么时间从 Dictionary 中取值,根据当前上下文的状况基本上可以确定在取值是否需要转换
    2.减少 ToLower 和 Equals 出现次数
    3.提高性能

    此方法已经在项目组中实践,郊果非常好

    ----------------------------------- http://www.cnblogs.com/rock_chen/
  • 相关阅读:
    2018第0次作业
    第八次作业
    第七次作业
    第六次作业
    第四次作业
    第三次作业
    第二次作业
    第3次作业
    第2次作业
    第1次作业
  • 原文地址:https://www.cnblogs.com/rock_chen/p/2861375.html
Copyright © 2020-2023  润新知