C# 进阶 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

Hashtable

  Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key-value的键值对,其中key通常可用来快速查找,同时key是区分大小写且唯一,value用于存储对应于key的值。Hashtable中key-value键值对均为object类型,所以Hashtable可以支持任何类型的key-value键值对。

Hashtable的声明

  声明一个哈希表要用关键字 Hashtable。其语法格式与类的声明相同。

Hashtable ht=new Hashtable(); //声明ht
Hashtable的属性

  Hashtable常用的属性有CountKeysValues,其中:Count是获取Hashtable中的元素个数,Keys表示获取 Hashtable 中的键的集合, Values 表示 Hashtable 中的所有值的集合。

Hashtable ht = new Hashtable();
ht.Add(1, 1);
ht.Add(2, 2);
ICollection Ic=ht.Keys; // ICollection 定义非泛型集合
foreach (int i in Ic)
{
    Console.WriteLine(i.ToString()+" "); // 显示结果为2 1
}
ht.add(3,"3");
ht.add(4,"4");
ICollection icv=ht.Values;
forearch(object i in icv)
{
 Console.WriteLine(i.ToString()+" ");  // 显示结果为4 3 2 1
}
int count=ht.Count; //结果为4
Hashtable的方法

  C#为我们提供了一些操作Hashtable常用的方法如下表:

序号方法名 & 描述
1public virtual void Add( object key, object value );
向 Hashtable 添加一个带有指定的键和值的元素。
2public virtual void Clear();
从 Hashtable 中移除所有的元素。
3public virtual bool ContainsKey( object key );
判断 Hashtable 是否包含指定的键。
4public virtual bool ContainsValue( object value );
判断 Hashtable 是否包含指定的值。
5public virtual void Remove( object key );
从 Hashtable 中移除带有指定的键的元素。
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
namespace test
{
  class hashtable
  {
      public static void Main()
      {
        Hashtable ht=new Hashtable(); //创建一个Hashtable实例
        //key值唯一,value值可以重复.
        ht.Add("E","e");//添加key/键值对
        ht.Add("A","a");
        ht.Add("C","c");
        ht.Add("B","b");
        string s=(string)ht["A"];
        if(ht.ContainsKey("E")) //判断哈希表是否包含特定键,其返回值为true或false
            Console.WriteLine("the E key:exist");
        ht.Remove("C");//移除一个key/键值对
        Console.WriteLine(ht["A"]);//此处输出a
        ht.Clear();//移除所有元素
        Console.WriteLine(ht["A"]); //此处将不会有任何输出
      }
  }
}
Hashtable的元素访问

  Hashtable使用键访问元素。如下代码:

Hashtable ht=new Hashtable();
ht.Add(1,"1");
ht.Add(2,"2");
string value1=ht[1].ToString(); // 结果为1
string value2=ht[2].ToString();  //结果为2