1樓:匿名使用者
hastable就像是一個特殊的陣列,它有一個類似主鍵的唯一編號(類似陣列中的數字,這個鍵值是隨便寫的),和這個唯一編號又對應一個值value(值的資料型別是不受限制的)。
下面是一個適用hashtable類的例子:
using system;
using system.collections;
using system.collections.generic;
using system.text;
namespace 練習
hs.remove("003");//移除鍵值為003的記錄
if (!hs.contains("003"))
else
if (!hs.containsvalue("小l87993723"))
else
foreach (string skey in hs.keys) //通過鍵集合來遍歷hashtable
}public static void main(string args)}}
2樓:
它是一個字典,key,value的形式儲存資料.
也就是你給一個key比如hash_field["group"]就能找到這個value的引用
3樓:火沙
表示鍵/值對的集合,這些鍵/值對根據鍵的雜湊**進行組織。
4樓:
hash是根據鍵值對儲存資料的
你的那個是當hash_field物件不為空的時候根據它的那個鍵取相應的值。。。
c# hashtable和dictionary的區別?
5樓:玩轉資料處理
1:單執行緒程式中推薦使用 dictionary, 有泛型優勢, 且讀取速度較快, 容量利用更充分.
2:多執行緒程式中推薦使用 hashtable, 預設的 hashtable 允許單執行緒寫入, 多執行緒讀取, 對 hashtable 進一步呼叫 synchronized() 方法可以獲得完全執行緒安全的型別. 而 dictionary 非執行緒安全, 必須人為使用 lock 語句進行保護, 效率大減.
3:dictionary 有按插入順序排列資料的特性 (注: 但當呼叫 remove() 刪除過節點後順序被打亂), 因此在需要體現順序的情境中使用 dictionary 能獲得一定方便.
4:對於值型別,特定型別(不包括 object)的 dictionary<(of <(tkey, tvalue>)>) 的效能優於 hashtable,這是因為 hashtable 的元素屬於 object 型別,所以在儲存或檢索值型別時通常發生裝箱和取消裝箱操作。
6樓:匿名使用者
dictionary是物件導向的,採用引用型別,hashtable是值型別的
7樓:匿名使用者
我明白你的意思了
dictionary支援泛型,hashtable不支援
這是我知道的最大的區別
c#中如何使用hashtable
8樓:手機使用者
hashtable 是以鍵值對的形式儲存資料 只是他儲存資料可以是object型別的
也就是說 在 c#中任何型別的物件都可以儲存在其中比如說你現在有n個 string 型別的陣列 你想把他們都存在一個資料集中
就可以使用 hashtable
當然你也可以自己定義一些類 然後實力出物件儲存在其中
9樓:匿名使用者
hashtable中是資料都是object型別
因此在取值的時候要進行資料型別轉換
如int value =(int)hashtable["key"]
10樓:非我即仙
hashtable在system.collections的名稱空間下。
是個根據object索引鍵訪問object值的集合。
沒有泛型,使用的時候只能進行強制轉換。
dictionary只能通過string類來定義鍵值,如dictionary d;d["wang"]="王";
collectionbase只能通過數字索引來訪問,如collectionbase col;col[0]="好";
hashtable比起上述兩種型別來說有更強的訪問能力。如:
hasttable hs=new hashtable();
hs["wang"]="王";
hs[0]="好";
然而上述兩個集合類有泛型類的實現dictionary<>和list<>,可以實現強型別化。(返回的是自己定製的型別)
hashtable沒有泛型類,返回的都是object型別。使用的時候必須進行強制轉化。
11樓:匿名使用者
// 建立 hashtable 例項
system.collections.hashtable ht = new system.collections.hashtable();
// 賦值
ht["username"] = "csharpxml";
ht["password"] = "123456789";
// 或者
ht.add("age", 32);
// 讀取
// asp.net
response.write(ht["username"] + "
" + ht["password"] + "
" + ht["age"]);
// winform
messagebox.show(ht["username"].tostring() + "\r\n" + ht["password"].
tostring() + "\r\n" + ((int)ht["age"]).tostring());
c# 中hashtable的用法,請幫忙!
12樓:no4ic齍
集合型別icollection,都可以用get去獲取 也可以用set去設定, 但通常這些類都實現了索引器,即 this 用法就是["key"] 它等同get set
13樓:乘明輝
hashtable實現了索引器,因此你想取key為"two"的值,非常容易,object value = table["two"];就可以了 因為返回值是object型別,如果前提確定時string型,可以string value = (string)table["two"];
c#中如何分別獲取hashtable裡的值
14樓:匿名使用者
foreach (dictionaryentry de in hashtable)
15樓:匿名使用者
lock (this.m_hashclient)}}
c#的hashtable怎麼由值取其對應的鍵值?
16樓:
我寫的一個小例項:
hashtable ht = new hashtable();
ht.add("ht1", "111");
ht.add("ht2", "222");
ht.add("ht3", "333");
//定義一個hashtable
string key = null;
foreach (system.collections.dictionaryentry de in ht)
}response.write(key);//輸出ht2
17樓:匿名使用者
foreach( dictionaryentry de in hashtable)
; value", de.key, de.value);
} foreach(string key in hastable.keys)
; value",key,hashtable[key]}
18樓:匿名使用者
chen_liang_xin 的辦法可行
19樓:匿名使用者
要不建兩個hashtable,分別存key-value 和 value-key
C選項怎麼理解YCST怎麼理解?
c後半句不對,基因重組不能產生新的性狀。因為基因重組是已有的基因的重新組合,可以產生新的基因型和新的表現型,但不可產生新的基因和新的性狀,基因突變才可產生新的性狀。y c s t 怎麼理解?我回答一下第二個問題吧。t的主體是 在總支出的式子中有 購買,那麼 不能憑空來錢。它也是巨集觀經濟中的一個重要...
c 類是怎麼理解,c 類别範本是怎麼理解
模板類英文為class template,template的中文翻譯為模板,所以模板類的意思其實是 類的模板。顧名思義,模板類是相當於一個模具,當引數給定時,生成具體的類,也叫例項化。它的提出主要是為了減少 重複。例如,我們可以用下面的 交換兩個數b和c a b b c c a 這個交換過程與a,b...
C語言中的intp的理解,int p 怎麼理解啊??
如果要連續定義兩個指標應該是怎樣做呢?如果是第一種理解,則為 int p,q 但是測試結果,p是int指標,而q是int型別,不是指標。所以第一種理解錯誤,實際上要連續定義兩個指標必須 int p,q 所以這樣看第二種理解更靠譜一些,雖然我感覺還是有些牽強,因為這句 而 p為對p取地址,和 抵消了 ...