-1

我在 .net 项目中有一个问题。我正在使用 System.Collections.Hashtable 来存储值并添加键值,例如

“在段落之间放回”

我想在该键值上搜索单词“between”。

现在我正在使用

//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
            }

对此有任何想法吗?

4

2 回答 2

3

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

除此之外,直接的键/值映射不会对您有太大帮助。基本上,您要么需要以某种方式更改数据结构,要么遍历集合中的所有键,并检查其中是否包含目标字符串。您实际上将映射视为一系列键/值对 - 散列给出的快速查找无关紧要,因为它仅在执行相等查找时才有用。

于 2012-11-15T07:22:51.030 回答
1
string value = (string)_Index.Cast<System.Collections.DictionaryEntry>()
                             .First(x => (x.Key as string).Contains(searchWord))
                             .Value;
于 2012-11-15T07:26:23.523 回答