解读.NET 2.0中Hashtable快速查找的方法_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:解读26个ASP.Net开发新手的常见问题
一位ASP.net初学者学习过程中整理的备忘录,包括“打开新的窗口并传送参数,为按钮添加对话框,删除表格选定记录,删除表格记录警告”等等常见问题的解决方法。 1. 打开新的窗

一般来说我们都是用 Hashtable 的 ContainsKey 方法来查找 Hashtable 中是否存在某个键值然后读取他,但是这个方法并不是效率最好的方法。比较好的方法是直接读取键值然后判断这个对象是否为 null 然后读取。两种代码分别如下:

以下为引用的内容:
一般慢速的方法:if (objHash.ContainsKey(keyValue))
{
strValue=(String)objHash[keyValue];
} 而快速的方法是:Object objValue=objHash[keyValue];
if (objValue!=null)
{
strValue=(String)objValue;
} 两种方法的速度经过测试能差一倍左右。下面是测试代码:
Hashtable objHash = new Hashtable();
for (Int32 intI = 0; intI < 1000; intI )
{
objHash.Add("Key_" intI.ToString(), "Value_" intI.ToString());
}
String strValue = String.Empty;
Stopwatch timer = new Stopwatch();
timer.Start();
for (Int32 intI = 0; intI < 1000; intI )
{
Object objValue = objHash["Key_" intI.ToString()];
if (objValue != null)
{
strValue = (String)objValue;
}
}
timer.Stop();
Console.WriteLine("Execution time was {0:F1} microseconds.", timer.Elapsed.Ticks / 10m);
timer.Reset();
timer.Start();
for (Int32 intI = 0; intI < 1000; intI )
{
if (objHash.ContainsKey("Key_" intI.ToString()))
{
strValue = (String)objHash["Key_" intI.ToString()];
}
}
timer.Stop();
Console.WriteLine("Execution time was {0:F1} microseconds.", timer.Elapsed.Ticks / 10m);
timer.Reset();

分享:浅析ASp.Net自定义验证码控件
最近自己写了一个自定义验证码控件把它拿出来和大家分享分享 具体步骤 1---》新建asp.net 网站 2---》添加新建项目 ,选择类库 3---》新建两个类 3.1--》自定义控件类(WebC

来源:模板无忧//所属分类:.Net教程/更新时间:2009-08-01
相关.Net教程