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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hashtable排序

發布時間:2024/4/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hashtable排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Hashtable 的煩惱!
using?System;
using?System.Collections;

namespace?NoSortHashtable
{
????
///?<summary>
????
///?Summary?description?for?Class1.
????
///?</summary>
????class?Class1
????{
????????
///?<summary>
????????
///?The?main?entry?point?for?the?application.
????????
///?</summary>
????????[STAThread]
????????
static?void?Main(string[]?args)
????????{
????????????Hashtable?hashTable?
=?new?Hashtable();

????????????hashTable.Add(
"hunan","changsha");
????????????hashTable.Add(
"beijing","beijing");
????????????hashTable.Add(
"anhui","hefei");
????????????hashTable.Add(
"sichuan","chengdu");
????????????
foreach(string?str?in?hashTable.Keys)
????????????{
????????????????Console.WriteLine(str?
+?"?:?"?+?hashTable[str]);
????????????}

????????}
????}
}

打印的結果是:
??? anhui : hefei
??? hunan : changsha
????sichuan : chengdu
??? beijing : beijing

當然,產生這個結果的原因大家都知道,Hashtable內部的排序機制使然,但我現在就是不想排序,我按什么順序輸入的,就想它再怎么給我輸出,怎么辦?去Google酷了一下,卻因為不知道使用什么關鍵字去酷,結果沒有酷出好的相關問題來。
我想到,ArrayList是不排序的啊,那是不是讓ArrayList和Hastable配成良緣,那么它們的結晶就是我想要的呢,既有Hashtable的豐富功能,又可以滿足我的BT的要求(不排序),動手了。
using?System;
using?System.Collections;

namespace?NoSortHashtable
{
????
/**////?<summary>
????
///?Summary?description?for?NoSortedHashtable.
????
///?</summary>

????public?class?NoSortHashtable?:?Hashtable
????
{
????????
private?ArrayList?keys?=?new?ArrayList();

????????
public?NoSortHashtable()
????????
{
????????}

????????

????????
public?override?void?Add(object?key,?object?value)
????????
{
????????????
base.Add?(key,?value);
????????????keys.Add?(key);
????????}


????????
public?override?ICollection?Keys
????????
{
????????????
get
????????????
{
????????????????
return?keys;
????????????}

????????}


????????
public?override?void?Clear()
????????
{
????????????
base.Clear?();
????????????keys.Clear?();
????????}


????????
public?override?void?Remove(object?key)
????????
{
????????????
base.Remove?(key);
????????????keys.Remove????(key);
????????}

????????
public?override?IDictionaryEnumerator?GetEnumerator()
????????
{
????????????
return?base.GetEnumerator?();
????????}


????}

}


再試
??????????? hashTable?=?new?NoSortHashtable();

????????????hashTable.Add(
"hunan","changsha");
????????????hashTable.Add(
"beijing","beijing");
????????????hashTable.Add(
"anhui","hefei");
????????????hashTable.Add(
"sichuan","chengdu");
????????????
foreach(string?str?in?hashTable.Keys)
????????????{
????????????????Console.WriteLine(str?
+?"?:?"?+?hashTable[str]);
????????????}

打印結果:
??? hunan : changsha
??? beijing : beijing
??? anhui : hefei
??? sichuan : chengdu


問題解決!!
應該很早之前就有人這么解決,只是我不知道而已,高手也應該有更好的辦法,只是我想不到而已!
見笑,見諒!

總結

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

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