zoukankan      html  css  js  c++  java
  • 约定编程之 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/
  • 相关阅读:
    Dev:LookUpEdit的用法
    Excel:写入Excel单纯写入
    浅拷贝与深拷贝
    自行车的种类
    简单的话
    Excel:导入导出原文02
    VS2010中出现无法嵌入互操作类型
    U盘有时候不显示(win7 64位)
    Knockout学习之Single Page Application
    CSS点滴整理
  • 原文地址:https://www.cnblogs.com/rock_chen/p/2861375.html
Copyright © 2011-2022 走看看