gpt4 book ai didi

c# - 匹配大文本文件中的字符串?

转载 作者:太空狗 更新时间:2023-10-29 18:30:25 29 4
gpt4 key购买 nike

我有一个字符串列表,在一个大小为 152MB 的文本文件中包含大约 700 万个项目。我想知道实现接受单个字符串并返回它是否在该字符串列表中的函数的最佳方法是什么。

最佳答案

您是否需要多次匹配此文本文件?如果是这样,我会创建一个 HashSet<string> .否则,只需逐行阅读(我假设每行一个字符串)并查看它是否匹配。

152MB 的 ASCII 最终会在内存中变成超过 300MB 的 Unicode 数据——但在现代机器中有足够的内存,因此将所有内容保存在 HashSet<string> 中。确实会使重复查找非常快。

执行此操作的绝对最简单 方法可能是使用 File.ReadAllLines ,虽然这将创建一个数组,然后将被丢弃 - 对内存使用来说不是很好,但可能还不错:

HashSet<string> strings = new HashSet<string>(File.ReadAllLines("data.txt"));
...

if (strings.Contains(stringToCheck))
{
...
}

关于c# - 匹配大文本文件中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2666121/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com