Pau*_*aul 1 c# data-structures
我正在开发一个 C# 项目,需要存储 10 到 15 个关键字及其同义词。
我想到存储这些的第一种方法是使用类似于 List> 的二维列表,这样它看起来像:
关键字1 同义词1 同义词2
关键字2 同义词1
关键字3 同义词1 同义词2 等
我开始考虑的是,如果我获取一个输入字符串并将其拆分以搜索每个单词,看看它是否是列表中的关键字或关键字的同义词,二维列表是否适合此操作,或者是否可以搜索它太慢了?
希望我的问题有意义,如果不清楚,我可以澄清任何问题。谢谢!
搜索[列表]会太慢吗?
当您谈论 10..15 个关键字时,很难想出一种效率低到足以让最终用户注意到速度缓慢的算法。根本没有足够的数据来减慢现代 CPU 的速度。
一种方法是构建一个将Dictionary<string,string>
每个同义词映射到其“规范”关键字的方法。这将包括规范版本本身:
var keywords = new Dictionary<string,string> {
["keyword1"] = "keyword1"
, ["synonym1"] = "keyword1"
, ["synonym2"] = "keyword1"
, ["keyword2"] = "keyword2"
, ["synonym3"] = "keyword2"
, ["keyword3"] = "keyword3"
};
Run Code Online (Sandbox Code Playgroud)
请注意关键字和同义词如何显示为键,而只有关键字显示为值。这使您可以查找关键字或同义词,并返回有保证的关键字。