Hashtableh和Datatable的大小写敏感问题
来源:互联网 发布:seo与sem哪个待遇好 编辑:程序博客网 时间:2024/06/12 00:49
在C#中,Hashtabl和Datatable是程序员经常用到的两个类,Hashtable主要用来进行字典操作,Datatable经常用来存储从数据库表中(广义来说可以是各种数据源)得到的数据,它是程序和数据库之间的一个桥梁,从库里提取到的数据放到Datatable中,程序对Datatable中的这些数据进行操作,然后再将修改后的数据存到数据库中。
值得注意的一点是Datatable是大小写不敏感的,而Hashtable是大小写敏感的。Datatable的“不敏感”特性非常有好处,使得在编程过程中,数据维护的工作量大大减少;而Hashtable的“敏感”特性并不总是有利的,比如有这样格式的一个XML模板文件:
<segment>
<Xmltag><string name="xxx"></string></Xmltag>
<Xmltag><string name="yyy"></string></Xmltag>
<Xmltag><string name="zzz"></string></Xmltag>
</segment>
需要以上面的文件为模板,构造出如下的一个XML文件发送出去:
<body>
<xxx>....</xxx>
<yyy>.....</yyy>
<zzz>.....</zzz>
</body>
完成上面的功能,首先需要根据模板文件中name的值,分别在Hashtable中存储对应的value值,如table.add("xxx","test")、table.add("yyy","hello");然后根据模板文件构造发送文件,发送文件配置节中的内容需要从Hashtable中获取,如table["xxx"]、table["yyy"]。
在一个大型项目中,如果设计时没有考虑周全或沟通不及时,不同的人可能写出不同风格的模板文件,xxx可能是全小写,也可能是全大写,或者是大小写混合,而负责写“hashtable.add()”的程序员和编写XML文件的人恰好又不一样,他选择了全部小写的风格,那么因为Hashtable的“敏感”特性,就会出现令人头疼的情况,要么修改程序,要么修改XML文件,修改程序是上策,有两种选择,一种方法是一个一个的修改,将add()中的所有xxx,yyy........修改为和xml文件中相同的风格,这会令人生厌,另一种方法是,重写Hashtable中的方法,使其大小写不敏感,代码如下:
class HashTableTest:Hashtable
{
public override object this[object key]
{
get
{
if(key==null)
{
return base[key];
}
else
{
}
return base[key.ToString().ToLower()];
}
}
public override void Add(object key, object value)
{
base.Add(key.ToString().ToLower(),value);
}
}
- Hashtableh和Datatable的大小写敏感问题
- Mysql大小写敏感的问题
- MySQL的大小写敏感问题
- Mysql大小写敏感的问题
- Mysql大小写敏感的问题
- MYSQL大小写敏感的问题
- Mysql大小写敏感的问题
- mysql大小写敏感的问题
- git大小写敏感, macOS大小写不敏感导致的问题
- MySQL大小写敏感问题和命名规范
- MySQL大小写敏感问题和命名规范
- SQL和HQL大小写敏感问题
- PHP大小写是否敏感问题的汇总
- PHP大小写是否敏感问题的汇总
- PHP大小写是否敏感问题的汇总
- 关于Android的文件名大小写敏感问题
- PHP大小写是否敏感问题的汇总
- PHP大小写是否敏感问题的汇总
- [C++] 螺旋矩阵
- 关于由ClickOnce部署的应用程序的两种模式和卸载问题
- 使用|DataDirectory| 的烦恼
- php 子类中如何调用父类的变量和方法
- C#和java中String的异同
- Hashtableh和Datatable的大小写敏感问题
- zoj 1716 又是一道简单题。直接暴力枚举实现!
- Oracle的instr函数
- C#中Control的作用,及应用示例(清空TextBox)
- 系统管理员变程序员 四步转型
- 电子线路基础 10 -----第 10 讲笔记
- 暴强自我介绍诠释
- WinForms窗体常用属性、方法和事件
- php 乱码的问题