日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# hashtable

發布時間:2024/10/8 C# 127 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# hashtable 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hashtable
一,哈希表(Hashtable)簡述

?? 在.NET work中,Hashtable是System.Collections命名空間提供的一個容器,用于處理和表現類似key/的鍵值對,其中key通常可用來快速查找,同時key是區分大小寫;用于存儲對應于key的值。Hashtable中key/鍵值對均為object類型,所以Hashtable可以支持任何類型的key/鍵值對.

二,哈希表的簡單操作

在哈希表中添加一個key/鍵值對:HashtableObject.Add(key,);
在哈希表中去除某個key/鍵值對:HashtableObject.Remove(key);
從哈希表中移除所有元素:??????????? HashtableObject.Clear();
判斷哈希表是否包含特定鍵key:?????? HashtableObject.Contains(key);
下面控制臺程序將包含以上所有操作:
using System;
using System.Collections; //使用Hashtable時,必須引入這個命名空間
class hashtable
{
?? public static void Main()
?? {
?? Hashtable ht=new Hashtable(); //創建一個Hashtable實例
?? ht.Add("E","e");//添加key/鍵值對
?? ht.Add("A","a");
?? ht.Add("C","c");
?? ht.Add("B","b");

?? string s=(string)ht["A"];
?? if(ht.Contains("E")) //判斷哈希表是否包含特定鍵,其返回值為true或false
???? Console.WriteLine("the E key:exist");
?? ht.Remove("C");//移除一個key/鍵值對
?? Console.WriteLine(ht["A"]);//此處輸出a
?? ht.Clear();//移除所有元素
?? Console.WriteLine(ht["A"]); //此處將不會有任何輸出
?? }
}


三,遍歷哈希表

遍歷哈希表需要用到DictionaryEntry Object,代碼如下:
foreach(DictionaryEntry de in ht) //ht為一個Hashtable實例
{
??? Console.WriteLine(de.Key);//de.Key對應于key/鍵值對key
??? Console.WriteLine(de.);//de.Key對應于key/鍵值對
}

注意:用foreach

四,對哈希表進行排序

?? 對哈希表進行排序在這里的定義是對key/鍵值對中的key按一定規則重新排列,但是實際上這個定義是不能實現的,因為我們無法直接在Hashtable進行對key進行重新排列,如果需要Hashtable提供某種規則的輸出,可以采用一種變通的做法:
ArrayList akeys=new ArrayList(ht.Keys); //別忘了導入System.Collections
akeys.Sort(); //按字母順序進行排序
foreach(string skey in akeys)
{
??? Console.Write(skey ":");
??? Console.WriteLine(ht[skey]);//排序后輸出
}

注意:用foreach 下面是一個簡單的例子: class SampleHashtable
{
?? /// <summary>
?? /// The main entry point for the application.
?? /// </summary>
?? [STAThread]
?? static void Main(string[] args)
?? {
??? // Create and initialize a new Hashtable.
??? Hashtable table = new Hashtable();
??? //Student Name, Grade
??? table.Add("leiwanjun", 100);
??? table.Add("wanghuan", 87);
??? table.Add("wuhailong", 92);
??? table.Add("renyao", 76);
??? table.Add("tanghonglei", 84);
??? table.Add("chenxiaoping", 91);
??? table.Add("liupeixun", 80);
??? table.Add("huyoumou", 87); // Display the properties and values of the Hashtable.???
??? Console.WriteLine("Count: {0}", table.Count);
??? PrintTable(table); Console.WriteLine();
??? int g = (int) table["wuhailong"];
??? Console.WriteLine ("wuhailong's grade is: {0}", g); Console.WriteLine();
??? PrintItems ("All Names", table.Keys);
???????????
??? Console.WriteLine();
??? PrintItems ("All Grades", table.Values); } public static void PrintTable( Hashtable myList)
?? {
??? Console.WriteLine ("{0, -15} {1, -15}", "Name","Grade");
??? Console.WriteLine ("{0, -15} {1, -15}", "----","-----");
//??? // 排序
//??? ArrayList al = new ArrayList(myList.Keys);
//??? al.Sort();
//??? foreach (string Name in al)
//??? {
//???? Console.WriteLine("{0, -15} {1, -15}", Name, myList[Name]);
//??? }
//??? //
??? //遍歷哈希表中的每個元素,直接輸出
??? foreach (DictionaryEntry e in myList)
??? {
???? Console.WriteLine ("{0, -15} {1, -15}", e.Key, e.Value);
??? }
?? } public static void PrintItems(string title, IEnumerable myList )
?? {
??? Console.Write ("{0}: ", title);
??? StringBuilder sb = new StringBuilder();
??? foreach (object o in myList)
??? {
???? sb.AppendFormat( "{0}, ", o);
??? }
??? sb.Remove(sb.Length - 2, 2);
??? Console.WriteLine(sb);

轉載于:https://www.cnblogs.com/hyfei0315/archive/2008/07/07/1237728.html

總結

以上是生活随笔為你收集整理的C# hashtable的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。