2012-11-15 169 views
-1

我在.net項目中遇到問題。我使用System.Collections.Hashtable存儲的值,並添加像在System.Collections.Hashtable中搜索單詞

鍵值「putreturnsbetweenparagraphs」

,我要搜索單詞「之間」對鍵值。

我現在用的

//Declare hash table 
System.Collections.Hashtable _Index; 

//add values to hashtable 
_Index.Add("putreturnsbetweenparagraphs",theword); 

//search section 
string searchWord="between"; 
      if (_Index.ContainsKey(searchWord)) 
      {  
       //code 
      } 

這方面有任何想法?

+0

你打算在散列表中添加多個鍵然後你想要搜索嗎? –

+0

爲什麼你有四個c#標籤?沒有關於你的問題的特定版本(甚至沒有任何C#特定的),即使有我希望你添加一個指定版本的單個標籤。這個問題也沒有任何特定的asp.net。這真的只是.NET。 –

回答

1
string value = (string)_Index.Cast<System.Collections.DictionaryEntry>() 
          .First(x => (x.Key as string).Contains(searchWord)) 
          .Value; 
+1

謝謝@ L.B爲新線程。我現在用的 '的foreach(在_index的DictionaryEntry項) { 如果(Item.Key.ToString()。包含(搜索內容)){ // 代碼 } }' –

3

首先,除非你是真的使用.NET 1.1,你應該看看使用Dictionary<TKey, TValue>而不是非通用Hashtable

除此之外,一個直接的鍵/值地圖不會幫助你很多。基本上你需要改變你的數據結構,或者遍歷全部集合中的鍵,並檢查它們是否有其中的任何包含目標字符串。實際上,您將映射視爲一系列鍵/值對 - 哈希給出的快速查找將無關緊要,因爲它僅在執行相等查找時很有用。