vb.net中如何初始化hashtable

[复制链接]
查看11 | 回复10 | 2021-1-27 05:55:42 | 显示全部楼层 |阅读模式
如题,假如想定义一个含有500个键值对的hashtable,并把这个hashtable声明为一个常量,要如何去做呢?
难道说只能先dimaaashashtable=newhashtable,然后再一条一条的add么?
有没有什么办法直接定义好么?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
hashtable本身就是可以扩容的所以定义大小没必要。直接用数组好了。
回复

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
一条条add??
不会写个循环吗
回复

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
引用1楼stubble的回复:hashtable本身就是可以扩容的所以定义大小没必要。直接用数组好了。
可能我表达的不够清楚,我的意思是说,我想定义一个hashtable的同时,把里面的值也设置好。假如我想设置500个键值对的话,不知道有什么简洁的办法没有。
就好比像dimtest_strasString="aaa"一样,在定义变量的同时并赋值。
回复

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
引用2楼Z65443344的回复:一条条add??
不会写个循环吗

可能我说的不明白,上面提到的“一条条add”,指的就是写个循环add。难道给一个hashtable赋初始值就只能弄个这么麻烦的办法么?我查看了hashtable的构造函数,好像没有使用的
回复

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
可以将字典的元素复制进去在初始化的时候
具体参考hashtable的构造函数Hashtable(IDictionary)
参考msdn
https://msdn.microsoft.com/zh-cn/library/system.collections.hashtable.hashtable(v=vs.80).aspx
回复

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
引用5楼stubble的回复:可以将字典的元素复制进去在初始化的时候
具体参考hashtable的构造函数Hashtable(IDictionary)
参考msdn
https://msdn.microsoft.com/zh-cn/library/system.collections.hashtable.hashtable(v=vs.80).aspx

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

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
引用6楼clear_shadow的回复:Quote: 引用5楼stubble的回复:
可以将字典的元素复制进去在初始化的时候
具体参考hashtable的构造函数Hashtable(IDictionary)
参考msdn
https://msdn.microsoft.com/zh-cn/library/system.collections.hashtable.hashtable(v=vs.80).aspx

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

你没好好看文档。
回复

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
这就跟你初始化数组一样
你定义一个数组
int[]i1=newint[500];
你不循环给每一项赋值,谁知道你打底想初始化成什么玩意
当然如果是值类型的数组,初始化完它里面就默认都是0了
如果是string[]s1=newstring[500];你不循环赋值一下,它里面就都是null
回复

使用道具 举报

千问 | 2021-1-27 05:55:42 | 显示全部楼层
我似乎懂你意思了你不想创建个字典来填充hashtable。
正如楼上所说就算你单纯建一个500容量的hashtable都是空的也毫无意义。
数据结构的作用是为了存储数据。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行