vb.net中如何初始化hashtable

问题描述

如题,假如想定义一个含有500个键值对的hashtable,并把这个hashtable声明为一个常量,要如何去做呢?难道说只能先dimaaashashtable=newhashtable,然后再一条一条的add么?有没有什么办法直接定义好么?

解决方案

解决方案二:
hashtable本身就是可以扩容的所以定义大小没必要。直接用数组好了。
解决方案三:
一条条add??不会写个循环吗
解决方案四:
引用1楼stubble的回复:

hashtable本身就是可以扩容的所以定义大小没必要。直接用数组好了。

可能我表达的不够清楚,我的意思是说,我想定义一个hashtable的同时,把里面的值也设置好。假如我想设置500个键值对的话,不知道有什么简洁的办法没有。就好比像dimtest_strasString="aaa"一样,在定义变量的同时并赋值。
解决方案五:
引用2楼Z65443344的回复:

一条条add??不会写个循环吗

可能我说的不明白,上面提到的“一条条add”,指的就是写个循环add。难道给一个hashtable赋初始值就只能弄个这么麻烦的办法么?我查看了hashtable的构造函数,好像没有使用的
解决方案六:
可以将字典的元素复制进去在初始化的时候具体参考hashtable的构造函数Hashtable(IDictionary)参考msdn
解决方案七:
引用5楼stubble的回复:

可以将字典的元素复制进去在初始化的时候具体参考hashtable的构造函数Hashtable(IDictionary)参考msdn

如果是字典的话,好像和hashtable一样,只能通过add的方式设置值。
解决方案八:
引用6楼clear_shadow的回复:

Quote: 引用5楼stubble的回复:
可以将字典的元素复制进去在初始化的时候具体参考hashtable的构造函数Hashtable(IDictionary)参考msdn

如果是字典的话,好像和hashtable一样,只能通过add的方式设置值。

你没好好看文档。
解决方案九:
这就跟你初始化数组一样你定义一个数组int[]i1=newint[500];你不循环给每一项赋值,谁知道你打底想初始化成什么玩意当然如果是值类型的数组,初始化完它里面就默认都是0了如果是string[]s1=newstring[500];你不循环赋值一下,它里面就都是null
解决方案十:
我似乎懂你意思了你不想创建个字典来填充hashtable。正如楼上所说就算你单纯建一个500容量的hashtable都是空的也毫无意义。数据结构的作用是为了存储数据。
解决方案十一:
DimmyHT1AsNewHashtable(3)

解决方案十二:
如果只是一个值,那当然可以在初始化的时候就给它赋值好如果是个集合,谁知道你到底想给里面赋值什么玩意string[]数组也可以这样初始化:string[]s1=newstring[]{"1","2","3"};这比循环一下还麻烦,还不如循环一下得了
解决方案十三:
LZ想做的应该是批量往Hashtable里面设值吧方法很多阿,可以从文件读,也可以从DB读。给你个从xml读的例子用XMLDom,转换成HashtablePublicClassHashTableXMLPublicSharedFunctionReadFromXmlFile(ByValxmlFileFullPathAsString)AsHashtableDimrHtAsHashtable=NothingDimpXmlNodeAsNewXmlDocumentpXmlNode.Load(xmlFileFullPath)IfpXmlNode.HasChildNodesAndAlso"HtElements".Equals(pXmlNode.ChildNodes(0).Name)ThenrHt=NewHashtableIfpXmlNode.ChildNodes(0).HasChildNodesThenForEachchildNodeAsXmlNodeInpXmlNode.ChildNodes(0).ChildNodesrHt.Add(childNode.Attributes("key").Value,childNode.Attributes("value").Value)NextEndIfEndIfreturnrHtEndFunctionEndClass

DimhtAsHashtable=HashTableXML.ReadFromXmlFile("Hashtable01.xml")

"Hashtable01.xml"<?xmlversion="1.0"encoding="utf-8"?><Document><HtElements><Itemkey="Key01"value="Value01"/><Itemkey="Key02"value="Value02"/><Itemkey="Key03"value="Value03"/><Itemkey="Key04"value="Value04"/><Itemkey="Key05"value="Value05"/></HtElements></Document>

解决方案十四:
阿,手误,上面HashTableXML这个类的第4行和第5行替换成下面这样DimpXmlDocAsNewXmlDocumentpXmlDoc.Load(xmlFileFullPath)DimpXmlNodeAsXmlNode=pXmlDoc.ChildNodes(1)

时间: 2024-10-31 13:45:54

vb.net中如何初始化hashtable的相关文章

把握VB.NET中的流FileStream

stream 当你第一次用VB.NET读写文件的时候,你肯定会发现VB.NET摒弃了传统的文件I/O支持,感觉不习惯.其实,在.NET里面,微软用丰富的"流"对象取代了传统的文件操作,而"流",是一个在Unix里面经常使用的对象. 我们可以把流当作一个通道,程序的的数据可以沿着这个通道"流"到各种数据存储机构(比如:文件,字符串,数组,或者其他形式的流等).为什么我们会摒弃用了那么久的IO操作,而代之为流呢?其中很重要的一个原因就是并不是所有的数

在VB.NET中进行抓屏

'Author:wgscd '功能:抓屏 'QQ153964481 'Date:2005-4-12 '*********************************  Public Class Form1     Inherits System.Windows.Forms.Form #Region " Windows 窗体设计器生成的代码 "     Public Sub New()         MyBase.New()         '该调用是 Windows 窗体设计器所

在VB.NET中使用MS Access存储过程 — 第二部份

access|存储过程 在VB.NET中使用MS Access存储过程 - 第二部份 作者: David Wasserman, MCP4/18/2002译者:Qianqian(thousandvb@yeah.net)5/10/2002 文章源代码: msaccess_sp2.zip介绍欢迎来到MS Access存储过程的第二部分讨论.第一部分详细地描述了如何使用ADO.NET和Visual Basic.NET在Access中创建存储过程. 第二部分将会示范如何通过数据库访问层访问在第一部分已经创

在VB.NET中实现拖放操作

第一次在csdn上发文章,希望大家帮忙使劲顶,鼓励一下新手,谢谢 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchImpDragDrop.asp 在VB.NET中实现拖放操作 Implementing Drag and Drop in Visual Basic .NET Steve Hoag Visual Basic .NET Team Microsoft Corpor

在VB.Net中创建使用控件数组

创建|控件|数组   在VB.Net中创建使用控件数组 首先创建一个Button类型控件数组: 1.创建"Windows应用程序"类型的工程,添加名为ButtonArray的类,并使该类继承 System.Collection.CollectionBase 类.System.Collections.CollectionBase类是.NET框架类库中为集合操作提供抽象的基类,通过对它的继承可以为我们的ButtonArray类具备集合增加.删除.索引的功能. 2.为ButtonArray类

vb.net中实现picturebox中图片拖动和label控件数组结合,实现label和图片同步

控件|数组   在前面的文章中,提到过在vb.net中实现picturebox中图片拖动,以及控件数组方面的东西. 因为项目需要,我要实现的是,图片上有各个站点的名称,我要实现点击相应的名称,进入站点,查看相应的信息.我采取的是在图片上放一系列的label,然后点击label,进入相应的站点,这样就遇到了一个问题,要实现在拖动图片的同时,所有的label也同步拖动. 下面的代码实现了这个功能: Imports System.DrawingNamespace WinForm.Main    Pub

VB.NET中的面向对象编程特征

编程|对象 Visual Basic 7也被称作VB.NET,具备了面向对象(OOP)编程语言的所有特征.对于VB编程人员来说,面向对象的概念和面向对象编程方式都不陌生.       如果问一个面向对象程序设计高手什么是面向对象程序设计语言?他可能会说出一大堆诸如类.接口.消息隐匿.封装.继承.多态性这样的名词,这些名词听起来都很酷,不是吗?但面向对象编程并非通过一两天的学习或听一次课就能掌握的.要真正地掌握面向对   象程序设计,不但需要掌握一定的理论知识,同时还要进行一些实际的编程练习.本文

在VB.NET中应用SMTP和POP3 服务

在VB.NET中应用SMTP和POP3 服务 介绍 这里介绍的例程代码最小化地展示了SMTP和POP3协议的执行,并且有意地演示VB.NET中的多线程.套接字和输入输出的能力.这个程序需要固定一些目录结构. 应用程序邮箱的目录 C:\Temp\SMTP C:\Temp\SMTP \SPOOL C:\Temp\SMTP \[Pop 3用户名作为目录] 程序也可以向局域网外部发送E-mail,但这就需要依赖于SMTP服务器.本例程中指定了SMTP服务器的硬代码,并且至少要在C:\Temp\SMTP下

VB.NET中的多线程开发

多线程 引言 对于使用VB6的开发者而言,要在程序中实现多线程(multi-thread)功能,一般就是使用Win32 API调用.但凡是进行过这种尝试的开发者都会感觉到实现过程非常困难,而且总是会发生些null terminated strings GPF的错误.可是有了VB.NET,一切烦恼都成为过去. 自由线程(free threaded) 在VB6中,我们只能对组件设置多线程模式,这通常就是单元模式的多线程.对于单元线程组件而言,组件中的每个可执行方法都将在一个和组件相联系的线程上运行.