[英]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.