发布网友 发布时间: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 是根据哈希算法来存储 键值对 数据的