我有一个字符串列表,需要找到与给定输入值匹配的字符串。 什么是最有效的方式(内存与执行速度)让我存储这个字符串列表并能够搜索它?字符串列表的启动和加载并不重要,但搜索的响应时间很重要。
我应该使用 List 或 HashSet 还是只使用基本的 string[] 或其他东西?
最佳答案
这在很大程度上取决于字符串的性质和集合的大小。根据集合的特征和预期的搜索字符串,有一些方法可以非常巧妙地组织事物,以便搜索非常快。您还没有向我们提供该信息。
但这就是我要做的。我会设定一个合理的性能要求。然后我会尝试 n-gram 索引(为什么?因为你在评论中说过你需要考虑部分匹配;HashSet<string>
在这里对你没有帮助)并且我会分析我期望的合理输入解决方案,看看它是否满足我的性能要求。如果是这样,我会接受解决方案并继续前进。如果不是,我会非常仔细地考虑我的性能要求是否合理。如果是,我会开始考虑我的输入和收藏是否有什么特别之处,可能使我能够使用一些更聪明的解决方案。
关于c# - 在字符串列表中搜索字符串的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8657773/