簡體   English   中英

asp.net中的哈希表

[英]hashtable in asp.net

1.我想在標簽中顯示哈希表的每個記錄,但是我無法申請哈希表中的每個循環。
2.為什么我們使用哈希表而不是數據表。

int key;
string name = string.Empty;
string str = string.Empty;

Hashtable hashtable = new Hashtable();
key = 1;
name = "A";
hashtable.Add(key,name);
key = 2;
name = "B";
hashtable.Add(key,name);
key = 3;
name = "lily";
hashtable.Add(key,name);

關於2:在.NET 2.0及更高版本中,除非有特殊原因(例如鎖定語義),否則在這里使用Hashtable確實沒有什么意義。 但是, DataTable甚至不那么理想(IMO)。 更好的替代方法是Dictionary<int,string> -或如果鍵始終為1,2,3,...可能只是一個string[]且偏移一個。

使用字典,您可以在foreach中獲得KeyValuePair<TKey,TValue> ,即

foreach(var pair in data) {
    int key = pair.Key;
    string value = pair.Value;
    //...
}

1)我無法申請哈希表中的每個循環

foreach (string key in hashtable.Keys)   {     
    Response.Write(key + '=' + hashtable[key] + "<br>");   
}

2)為什么我們使用哈希表而不是數據表。

使用哈希表進行搜索的速度更快。

如果優先搜索,請使用哈希表。 哈希表在按鍵搜索時提供了非常快速的搜索機制,而在按值搜索時提供了很好的搜索
如果您希望能夠刪除特定元素,請使用哈希表(使用Remove方法)
當元素的存儲順序與您無關時,請使用哈希表
如果您需要某些特定順序的元素,請不要使用哈希表。 您不能依賴哈希表如何對其元素進行排序
如果您需要在特定位置插入元素,請不要使用哈希表
如果要存儲具有相同值的多個鍵,請不要使用哈希表。 哈希表中的所有鍵必須唯一
[ 參考 ]

如果要對其進行迭代,則可以僅對值進行迭代:

foreach(var value in hashtable.Values)
{
}

至於為什么使用Hashtable而不是DataTable的原因,DataTable在功能方面相當豐富,而在內存和處理開銷方面卻比較繁重。

但是,我認為,由於Hashtable的類型不是強類型,因此如今更常見的是使用通用集合,例如Dictionary。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM