zoukankan
html css js c++ java
在C#中应用哈希表(Hashtable)
一、哈希表(Hashtable)简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key
/
value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key
/
value键值对均为object类型,所以Hashtable可以支持任何类型的key
/
value键值对.
二、哈希表的简单操作
在哈希表中添加一个key
/
value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key
/
value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:
using
System;
using
System.Collections;
//
使用Hashtable时,必须引入这个命名空间
class
hashtable
{
public
static
void
Main()
{
Hashtable ht
=
new
Hashtable();
//
创建一个Hashtable实例
ht.Add(
"
E
"
,
"
e
"
);
//
添加key/value键值对
ht.Add(
"
A
"
,
"
a
"
);
ht.Add(
"
C
"
,
"
c
"
);
ht.Add(
"
B
"
,
"
b
"
);
string
s
=
(
string
)ht[
"
A
"
];
if
(ht.Contains(
"
E
"
))
//
判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine(
"
the E key:exist
"
);
ht.Remove(
"
C
"
);
//
移除一个key/value键值对
Console.WriteLine(ht[
"
A
"
]);
//
此处输出a
ht.Clear();
//
移除所有元素
Console.WriteLine(ht[
"
A
"
]);
//
此处将不会有任何输出
}
}
三、遍历哈希表
遍历哈希表需要用到DictionaryEntry Object,代码如下:
for
(DictionaryEntry de
in
ht)
//
ht为一个Hashtable实例
{
Console.WriteLine(de.Key);
//
de.Key对应于key/value键值对key
Console.WriteLine(de.Value);
//
de.Key对应于key/value键值对value
}
四、对哈希表进行排序
对哈希表进行排序在这里的定义是对key
/
value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
ArrayList akeys
=
new
ArrayList(ht.Keys);
//
别忘了导入System.Collections
akeys.Sort();
//
按字母顺序进行排序
foreach
(
string
skey
in
akeys)
{
Console.Write(skey
+
"
:
"
);
Console.WriteLine(ht[skey]);
//
排序后输出
}
五、简单应用
实现电子商务中的购物车,试衣间,一张物品多张图片等功能,我正在用!
查看全文
相关阅读:
VituralBox 虚拟机网路设置 主机无线
布局
Git 安装
剑指offer——33分行从上到下打印二叉树
剑指offer——32从上到下打印二叉树
剑指offer——31序列化二叉树
剑指offer——30栈的压入、弹出序列
剑指offer——30包含min函数的栈
剑指offer——29顺时针打印矩阵
剑指offer——28对称的二叉树
原文地址:https://www.cnblogs.com/kokoliu/p/524421.html
最新文章
Adding a web map
[V&N2020 公开赛]easyTHeap tache
[V&N2020 公开赛]simpleHeap double free&overlapping
fast bins、unsorted bins、malloc state
汇编指令
Unlink hitcontraining_heapcreator
2-9-9-12分页(下)
2-9-9-12分页(上)
逆向MmIsAddressValid
Windows Job
热门文章
Python 3 函数自由变量的大坑
Python 2.7的字典实现简化版(C语言)
让sublime总是在新选项卡打开新文件
Windows 8 Cython 的配置(解决Unable to find vcvarsall.bat问题)
thinkpad彻底消除"触摸键盘"图标
用reg文件把便携版sublime text 3添加到右键菜单
win 8.1 64位彻底删除王码98
递归dict
weakref 待解决.
foxit pdf强制页面视图所有情况都为'合适宽度'
Copyright © 2011-2022 走看看