在System.Collections.Hashtable中搜索单词

时间:2012-11-15 07:19:23

标签: c# .net

我在.net项目中遇到了问题。我正在使用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
            }

对此有何想法?

2 个答案:

答案 0 :(得分:3)

首先,除非您真的使用.NET 1.1,否则您应该使用Dictionary<TKey, TValue>而不是非通用Hashtable

除此之外,直键/值图对您没有多大帮助。基本上,您需要以某种方式更改数据结构,或者迭代所有集合中的键,并检查中的任何是否包含目标字符串。您实际上将地图视为一系列键/值对 - 哈希给出的快速查找是无关紧要的,因为它仅在执行相等查找时有用。

答案 1 :(得分:1)

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