zoukankan      html  css  js  c++  java
  • C# 哈希表(Hashtable)用法笔记

    一、什么是Hashtable?

    Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访问集合中的元素。

    当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目

    二、Hashtable 的属性

    1、Count 获取 Hashtable 中包含的键值对个数。

    2、IsFixedSize   获取一个值,表示 Hashtable 是否具有固定大小。

    3、IsReadOnly    获取一个值,表示 Hashtable 是否只读。

    4、Item  获取或设置与指定的键相关的值。

    5、Keys  获取一个 ICollection,包含 Hashtable 中的键。

    6、Values    获取一个 ICollection,包含 Hashtable 中的值。

    三、Hashtable 的方法

    在C#中使用需要引用

    using System.Collections;

    using System.Collections.Generic;

    这两个命名空间

    1、  public virtual void Add( object key, object value );

    用途: 向 Hashtable 添加一个带有指定的键和值的元素。

    2、public virtual void Clear();

    用途:从 Hashtable 中移除所有的元素。

    3、public virtual bool ContainsKey( object key );

    用途:判断 Hashtable 是否包含指定的键。

    4、public virtual bool ContainsValue( object value );

    用途:判断 Hashtable 是否包含指定的值。

    5、public virtual void Remove( object key );

    用途:从 Hashtable 中移除带有指定的键的元素。

    四、HashTable的应用场景

    1、某些数据会被高频率查询

    2、数据量很大

    3、查询字段包含字符串类型

    4、数据类型不唯一

    五、HashTable简单用法实例

    class Program

    {

    static void Main(string[] args)

    {

    // 创建一个Hashtable实例

    Hashtable ht=new Hashtable();

    // 添加keyvalue键值对

    ht.Add("A","1");

    ht.Add("B","2");

    ht.Add("C","3");

    ht.Add("D","4");

    // 遍历哈希表只能用foreach来遍历,因为Hashtable不能用索引访问

    //遍历key

    foreach(Object item in ht.Keys)

    {

    Console.WriteLine((string)item);

    }

    //遍历value

    foreach(Object item in ht.Value)

    {

    Console.WriteLine((string)item);

    }

    foreach (DictionaryEntry de in ht)

    {

    Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

    }

    // 哈希表排序

    ArrayList akeys=new ArrayList(ht.Keys);

    akeys.Sort();

    foreach (string skey in akeys)

    {

    Console.WriteLine("{0, -15} {1, -15}", skey, ht[skey]);

    }

    // 判断哈希表是否包含特定键,其返回值为true或false

    if (ht.Contains("A"))

    Console.WriteLine(ht["A"]);

    // 给对应的键赋值

    ht["A"] ="你好";

    // 移除一个keyvalue键值对

    ht.Remove("C");

    // 遍历哈希表

    foreach (DictionaryEntry de in ht)

    {

    Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

    }

    // 移除所有元素

    ht.Clear();

    // 此处将不会有任何输出

    Console.WriteLine(ht["A"]);

    Console.ReadKey();

    }

    }

    公众号:原文

  • 相关阅读:
    从属性赋值到MVVM模式详解
    C#综合揭秘——细说事务
    Action与Trigger
    C#综合揭秘——细说多线程(下)
    继承BitmapSource并使用独立存储来缓存远程的图片
    Windows Phone 7 MVVM模式数据绑定和传递参数
    Lambda表达式总结
    Windows Phone页面导航和独立存储开发总结
    RegisterHotKey设置系统级热键《转》
    隐藏统计代码或者任何不想被看见的东西《转》
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12352747.html
Copyright © 2011-2022 走看看