C# 我应该使用哪些数据类型和方法?

C# 我应该使用哪些数据类型和方法?,c#,dictionary,nlp,search-engine,trie,C#,Dictionary,Nlp,Search Engine,Trie,我想写一个简单的搜索引擎。我有一个与特定关键字相关的确定数量的主要主题。目的是从输入的部分关键字中识别主语。我正在考虑使用:字典。我必须在这本词典中搜索并找到,例如,所有以3个字符字符串开头的关键字及其关联的主要主题 我的解决方案是最好的吗?我如何有效地查看这些数据,而不必手动检查字符串中的每个列表,字符串 如果我不清楚,请告诉我。您正在寻找的,建议从搜索开始。下面是一个关于它的讨论。你可以找到那个 下面介绍如何使用上述实现,代码来自上述文章 //Create trie Trie < st

我想写一个简单的搜索引擎。我有一个与特定关键字相关的确定数量的主要主题。目的是从输入的部分关键字中识别主语。我正在考虑使用:
字典
。我必须在这本词典中搜索并找到,例如,所有以3个字符
字符串开头的关键字及其关联的主要主题

我的解决方案是最好的吗?我如何有效地查看这些数据,而不必手动检查
字符串
中的每个
列表
字符串

如果我不清楚,请告诉我。

您正在寻找的,建议从搜索开始。下面是一个关于它的讨论。你可以找到那个

下面介绍如何使用上述实现,代码来自上述文章

//Create trie
Trie < string > trie = new Trie < string > ();

//Add some key-value pairs to the trie
trie.Put("James", "112");
trie.Put("Jake", "222");
trie.Put("Fred", "326");

//Search the trie
trie.Matcher.NextMatch('J'); //Prefix thus far: "J"
trie.Matcher.GetPrefixMatches(); //[112, 222]
trie.Matcher.IsExactMatch(); //false
trie.Matcher.NextMatch('a');
trie.Matcher.NextMatch('m'); //Prefix thus far: "Jam"
trie.Matcher.GetPrefixMatches(); //[112]
trie.Matcher.NextMatch('e');
trie.Matcher.NextMatch('s'); //Prefix thus far: "James"
trie.Matcher.IsExactMatch(); //true
trie.Matcher.GetExactMatch(); //112

//Remove a string-value pair
trie.Remove("James");
//创建trie
TrieTrie=新的Trie();
//向trie添加一些键值对
特里普特(“詹姆斯”,“112”);
特里普特(“杰克”,“222”);
特里普特(“弗雷德”,“326”);
//搜索trie
trie.Matcher.NextMatch('J')//迄今为止的前缀:“J”
trie.Matcher.GetPrefixMatches()//[112, 222]
trie.Matcher.IsExactMatch()//假的
trie.Matcher.NextMatch('a');
trie.Matcher.NextMatch('m')//到目前为止,前缀为“Jam”
trie.Matcher.GetPrefixMatches()//[112]
trie.Matcher.NextMatch('e');
trie.Matcher.NextMatch('s')//到目前为止前缀为:“詹姆斯”
trie.Matcher.IsExactMatch()//真的
trie.Matcher.GetExactMatch()//112
//删除字符串-值对
trie.移除(“詹姆斯”);

那么您是只按关键字搜索,还是按关键字和内容搜索?我这样问是因为我怎样才能在不必手动检查每个列表的情况下高效地查看这些数据,字符串逐字符串不适合只查看关键字。您是在寻找精确的关键字匹配还是从开始?不,我将按部分关键字搜索。就像斯里拉姆说的“从开始”。