我在.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
}
对此有何想法?
答案 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;