本文共 1514 字,大约阅读时间需要 5 分钟。
哈希表(Hashtable)和哈希集合(HashSet)是C#中用于存储和操作键值对的基础数据结构。你可以通过集合操作快速处理数据,比如并集、交集和差集等。
哈希表是一种键值对的集合,支持快速查找的数据结构。在.NET Framework中,Hashtable位于System.Collections
命名空间。它使用哈希表实现,能够快速存取和删除元素。哈希表的键和值都是object
类型,可以存储任何非空对象。
添加键值对:
使用Add
方法即可向哈希表中添加键值对。Hashtable hashtable = new Hashtable();hashtable.Add("Name", "Json");
移除键值对:
使用Remove
方法可以移除特定键值对。hashtable.Remove("Name");
清除所有元素:
使用Clear
方法清空哈希表。hashtable.Clear();
检查是否包含键:
使用Contains
方法检查哈希表是否包含指定键。bool hasKey = hashtable.Contains("Name");
哈希集合是一个专门用于高效集合操作的集合,比如将两个集合进行并集、交集、差集等操作。它的主要特点是不允许重复元素,且没有特定顺序。
以下是一个使用HashSet进行集合操作的示例:
string[] str1 = { "11", "2", "3", "11", "25" };string[] str2 = { "11", "21", "4", "511", "2" };HashSeths1 = new HashSet (str1);HashSet hs2 = new HashSet (str2);string[] resultUnion = hs1.Union(hs2).ToArray(); // 两人共有的数据string[] resultExceptMe = hs1.Except(hs2).ToArray(); // 我有你没有的数据string[] resultExceptYou = hs2.Except(hs1).ToArray(); // 你我有我没有的数据string[] resultIntersect = hs1.Intersect(hs2).ToArray(); // 两者都有的数据
泛型支持
线程安全性
Synchronized()
方法进一步加锁。性能对比
装箱与拆箱
object
类型,存储和检索操作需要频繁进行装箱和拆箱,影响性能。通过合理选择集合类型,可以在高效性和性能之间找到最佳平衡。
转载地址:http://wsjmz.baihongyu.com/