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

标签 c# .net memory-management

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

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

最佳答案

这在很大程度上取决于字符串的性质和集合的大小。根据集合的特征和预期的搜索字符串,有一些方法可以非常巧妙地组织事物,以便搜索非常快。您还没有向我们提供该信息。

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

关于c# - 在字符串列表中搜索字符串的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8657773/

相关文章:

c - 为什么有人会在 C 中初始化未分配的内存?

c++ - 如何make_shared派生类?

c# - Azure B2C Oauth : Could not establish trust relationship for the SSL/TLS secure channel

c# - 从多个字段的嵌套集合中选择不同的列表

c# - 如何解析嵌套的JSON数据结构

c# - 获取 .ttf 文件的字体名称

.net - 为什么Vista会报告我的Windows帐户没有管理员角色?

c# - 使用动态加载的 .Net 程序集进行二进制序列化

c# - SqlBulkCopy 和 Entity Framework

memory-management - 我是否通过显式处理 imageView.Image 来赢得内存?