C# 在System.Collections.Hashtable中搜索单词

C# 在System.Collections.Hashtable中搜索单词,c#,.net,C#,.net,我在.net项目中遇到了一个问题。我使用System.Collections.Hashtable存储值并添加键值,如 “在段落之间放置返回” 我想在这个键值上搜索单词“between” 现在我正在使用 //Declare hash table System.Collections.Hashtable _Index; //add values to hashtable _Index.Add("putreturnsbetweenparagraphs",theword ); //search se

我在.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
            }

对此有什么想法吗?

首先,除非您真的在使用.NET 1.1,否则您应该考虑使用
字典
,而不是非通用的
哈希表

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

string value=(string)\u Index.Cast()
string value = (string)_Index.Cast<System.Collections.DictionaryEntry>()
                             .First(x => (x.Key as string).Contains(searchWord))
                             .Value;
.First(x=>(x.Key作为字符串).Contains(searchWord)) 价值
是否要在哈希表中添加多个键,然后进行搜索?为什么要有四个c#标记?您的问题没有特定于版本的内容(甚至没有特定于C的内容),即使有,我也希望您添加一个标签来指定版本。关于这个问题,asp.net也没有什么特别的。这真的只是.NET。谢谢@L.B提供的新线程。现在我使用的是
foreach(DictionaryEntry项在_索引中){if(Item.Key.ToString().Contains(searchWord)){//code}