在字符串列表中搜索字符串的有效方法?

Mak*_*yNZ 7 .net c# memory-management

我有一个字符串列表,需要找到哪些字符串匹配给定的输入值.我存储这个字符串列表并能够搜索它的最有效方式(内存与执行速度)是什么?字符串列表的启动和加载并不重要,但搜索的响应时间是.

我应该使用List或HashSet还是只使用基本字符串[]或其他东西?

jas*_*son 10

它在很大程度上取决于字符串的性质和集合的大小.根据集合的特征和预期的搜索字符串,有很多方法可以非常巧妙地组织事物,以便搜索速度非常快.你没有给我们这些信息.

但这就是我要做的.我设定了合理的性能要求.然后我会尝试一个n-gram索引(为什么?因为你在评论中说你需要考虑部分匹配; a HashSet<string>在这里不会帮助你)而且我会分析我期望对这个解决方案的合理输入并看到如果它符合我的性能要求.如果确实如此,我会接受解决方案并继续前进.如果没有,我会非常仔细地考虑我的表现要求是否合理.如果是的话,我会开始思考我的输入和收藏是否有特别之处,这可能使我能够使用更聪明的解决方案.