问题描述
如题,假如想定义一个含有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)