首页 > 编程 > .NET > 正文

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

2024-07-10 12:51:19
字体:
来源:转载
供稿:网友

推荐:解读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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表