香蕉视频app

香蕉视频appKeep on going never give up.

Let's Go

C# 學習筆記(45)Hashtable鍵值對集合

C#Lonely2019-05-18 19:34:1674次0條

Hashtable

Hashtable是一個鍵值對集合香蕉视频app,Hashtable 類實現了 IDictionary 接口,集合中的值都是以鍵值對的形式存取的。

C# 中的 Hashtable 稱為哈希表,也稱為散列表,在該集合中使用鍵值對(key/value)的形式存放值。換句話說,在 Hashtable 中存放了兩個數組,一個數組用于存放 key 值,一個數組用于存放 value 值。此外,還提供了根據集合中元素的 key 值查找其對應的 value 值的方法。

在鍵值對集合當中,是根據鍵去找值的,鍵必須是唯一的,而值是可以重復的。

香蕉视频app Hashtable 類提供的構造方法有很多,最常用的是無參數的構造方法,構造方法就不一一列出,有需要可自行查看。

Hashtable 類中常用的屬性和方法

屬性或方法 作用
Count 集合中存放的元素的實際個數
void Add(object key,object value) 向集合中添加元素
void Remove(object key) 根據指定的 key 值移除對應的集合元素
void Clear() 清空集合
ContainsKey (object key) 判斷集合中是否包含指定 key 值的元素
ContainsValue(object value) 判斷集合中是否包含指定 value 值的元素

Keys屬性,是Hashtable的集合。Values屬性,是Hashtable的香蕉视频app集合;可以通過foreach遍歷它的鍵集合和值集合。

如果要同時得到Hashtable中的鍵集合和值集合,在使用foreach遍歷時,請將var關鍵字替換為DictionaryEntry,這樣就能同時拿到鍵和值了。

鍵值對集合,如果得到鍵,可以使用 集合名[鍵名] 這樣的索引方式獲取對應的值。因為鍵值對集合不提供下標來訪問,故這類集合不能通過for循環來遍歷。

代碼示例:

using System;
using System.Collections; //引用命名空間

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //在鍵值對集合當中,是根據鍵去找值的。
            //注意:鍵值對集合當中,鍵必須是唯一的,而值是可以重復的。

            Hashtable ht = new Hashtable(); 

            //添加數據
            //方法一:鍵值對對象名.Add(鍵,值);
            ht.Add(0, "張三");
            ht.Add(1, '男');
            ht.Add(2, 18);
            ht.Add(true, "正確");
            ht.Add(false, "錯誤");

            //方法二:鍵值對對象名[鍵]=值;
            //如果這個集合里沒有這個鍵,那么就會把這個鍵和值添加進去。如果這個集合里已經存在這個鍵了,則會把該鍵對應的值替換覆蓋掉。
            ht[3] = "李四";
            ht[0] = "把張三覆蓋!";

            //判斷集合中是否包含該鍵
            if (ht.ContainsKey("abc")) //其Contains()方法最終也是調用這個方法實現的。ContainsValue(value)方法,是查詢是否包含某個值。
            {
                Console.WriteLine("包含有abc鍵,不能再添加abc鍵了,因為鍵必須是唯一。");
            }
            else
            {
                Console.WriteLine("不包含有abc鍵,可以添加abc鍵。");
                ht.Add("abc", "ABC");
            }

            //移除集合中所有元素
            //ht.Clear();

            //移除指定鍵的元素
            ht.Remove("abc");

            //打印輸出
            foreach (var item in ht.Keys) //遍歷集合中的鍵
            {
                Console.WriteLine("鍵:{0} \t 值:{1}", item, ht[item]);
            }
            Console.ReadKey();

        }
    }
}




暗錨,解決錨點偏移

文章評論

    嘿,來試試登錄吧!