hashtable赋值的问题

发布网友 发布时间:2022-04-24 16:03

我来回答

4个回答

热心网友 时间:2023-10-21 07:46

同意fancyivan的答案
Hashtable h1 = new Hashtable();
Hashtable h2 = new Hashtable();
Hashtable h3 = new Hashtable();
h3.Add(001,"abc");
例如这h1,h2,h3这三个hashtable,h3里面有一个键值对(001,"abc");
然后把h3这个hashtable添加到h2里面

h2.Add(001,h3);(或者h2[001]=h3;)
然后你这句h1=(hashtable)h2[001];就相当于把h3这个hashtable赋给了h1

当你遍历h1的时候结果就是(1,"abc")

hashtable是只有指定key才可以赋值,而你这句是相当与把一个hashtable赋给了另一个hashtable,所以不用指定key

热心网友 时间:2023-10-21 07:46

Hashtable, 哈希表, (key, value), 一个元素里面存有两个东西, 一个key和一个value值, key是唯一的, 但value可以不唯一. key和value的类型可以是任何类型.

在给hashtable中的一个元素赋值时,value可以为空,但key一定不能为空.

ht1 = (Hashtable) ht2[key];

这个还真不知道... 你确定你能运行成功?

那除非是这么一种情况: ht2[key], 即这个key所对应的value值在存入的时候是Hashtable类型的. 别的类型如string, from之类的应该不能强转为hashtable了.

热心网友 时间:2023-10-21 07:47

Hashtable 是个可以装任何类型(object)的容器, ht2[key] 可能是Hashtable类型 也可能不是,ht1 = (Hashtable) ht2[key]; 这句是把ht2[key]转换成Hashtable类型再赋值给ht1 (ht1也为Hashtable)。

热心网友 时间:2023-10-21 07:47

1 这个是给ht1赋值而不是给里面的某个键赋值,是个普通的赋值语句
2 也许你理解的难点是类型转换 ht2 这个hashtable的value是一个实现了Ilist,IEnumable的类,能转换成Hashtable

hashtable 是根据哈希算法来存储 键值对 数据的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com