C# Hashtable类:哈希表(散列表)中的方法和属性

C# Hashtable 类实现了 IDictionary 接口,集合中的值都是以键值对的形式存取的。

C# 中的 Hashtable 称为哈希表,也称为散列表,在该集合中使用键值对(key/value)的形式存放值。

换句话说,在 Hashtable 中存放了两个数组,一个数组用于存放 key 值,一个数组用于存放 value 值。

此外,还提供了根据集合中元素的 key 值查找其对应的 value 值的方法。

Hashtable 常用的是不含参数的构造方法。

Hashtable 对象名 = new Hashtable();
一、常见方法

1、Hashtable.Add(Object, Object) 方法

将带有指定键和值的元素添加到 Hashtable 中。

Hashtable test = new Hashtable
{
	{ 1, 234 },
    { 2, null},//不能 null 键,但值可以是
    { 3, 345 },
    { 4, 234 }
};
foreach(DictionaryEntry v in test)
{
	Console.WriteLine("序号{0}对应的值是{1}",v.Key,v.Value);
}

2、Hashtable.Clear 方法

从 Hashtable 中移除所有元素。

Hashtable test = new Hashtable
{
	{ 1, 234 },
    { 2, null},//不能 null 键,但值可以是
    { 3, 345 },
    { 4, 234 }
};
foreach(DictionaryEntry v in test)
{
	Console.WriteLine("序号{0}对应的值是{1}",v.Key,v.Value);
}
test.Clear();
foreach(DictionaryEntry v in test)
{
	Console.WriteLine("移除后的结果:序号{0}对应的值是{1}",v.Key,v.Value);
}

3、Hashtable.Contains(Object) 方法

确定 Hashtable 是否包含特定键。

public virtual bool Contains (object key);

要使用在 Hashtable 中定位的键,如果包含指定键即为 Hashtable,否则为 False。

Hashtable ht = new Hashtable
{
	{ 1, "计算机基础" },
	{ 2, "高级编程" },
	{ 3, "数据库应用" }
};
Console.WriteLine("请输入图书编号");
int id = int.Parse(Console.ReadLine());
bool flag = ht.Contains(id);
if (flag)
{
	Console.WriteLine("你查找的图书名称是:{0}", ht[id].ToString());
}
else
{
	Console.WriteLine("你查找的图书编号不存在!");
}

Contains 可实现 IDictionary.Contains,它的行为与 ContainsKey 完全相同。

4、Hashtable.ContainsKey(Object) 方法

确定 Hashtable 是否包含特定键。

public virtual bool ContainsKey (object key);

如果 true 包含具有指定键的元素,则为 Hashtable;否则为 false。

Hashtable test = new Hashtable()
{
	{0,"zero"},
	{1,"one"},
	{2,"two"},
	{3,"three"},
	{4,"four"}
};
//打印哈希表
foreach (DictionaryEntry v in test)
{
	Console.WriteLine("键值{0}对应的数值是{1}",v.Key,v.Value);
}
//判断指定键
Console.WriteLine("请输入指定键值:");
try
{
	int myKey = int.Parse(Console.ReadLine());
	if(test.ContainsKey(myKey))
	{
		Console.WriteLine("这个键值在哈希表中,且值为:" + test[myKey]);
	}
	else
	{
		Console.WriteLine("这个键值不在哈希表中");
	}
	catch (EXception ex)
	{
		Console.WriteLine(ex.Message);
	}
}

在判断时可采用三元表达式:

Hashtable test = new Hashtable()
{
	{0,"zero"},
	{1,"one"},
	{2,"two"},
	{3,"three"},
	{4,"four"}
};
int myKey = 2;
Console.WriteLine("键值{0}是{1}",myKey,test.ContainsKey(myKey)?"在哈希表中":"不在哈希表中");

5、Hashtable.ContainsValue(Object) 方法

确定 Hashtable 是否包含特定值。

public virtual bool ContainsValue (object value);

如果 true 包含具有指定 Hashtable 的元素,则为 value;否则为 false。

Hashtable test = new Hashtable()
{
	{0,"zero"},
	{1,"one"},
	{2,"two"},
	{3,"three"},
	{4,"four"}
};
//打印哈希表
foreach (DictionaryEntry v in test)
{
	Console.WriteLine("键值{0}对应的数值是{1}",v.Key,v.Value);
}
//判断指定数值
Console.WriteLine("请输入数值:");
try
{
	string myValue = Console.ReadLine().ToString();
    if (test.ContainsValue(myValue))
    {
    	Console.WriteLine("这个数值在哈希表中");
    }
 	else
    {
  		Console.WriteLine("这个数值不在哈希表中");
    }
}

6、Hashtable.Remove(Object) 方法

根据指定的 key 值移除对应的集合元素。

Hashtable test = new Hashtable()
{
	{1,"张三"},
	{2,"李四"},
	{3,"王五"},
	{4,"马六"},
	{5,"陈七"},
	{6,"周八"}
};
foreach(DictionaryEnty v in test)
{
	Console.WriteLine("键值{0}对应的数值是{1}",v.Key,V.Value);	
}
test.Remove();
foreach(DictionaryEntry v int test)
{
	Console.WriteLine("键值{0}对应的数值是{1}",v.Key,V.Value);
}
二、常用属性

Count 属性

获取哈希表中的元素个数。

Hashtable test = new Hashtable()
{
	{1,"张三"},
	{2,"李四"},
	{3,"王五"},
	{4,"马六"},
	{5,"陈七"},
	{6,"周八"}
};
int num = test.Count;
Console.WriteLine(num);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值