嗨,大家好。我有一个循环来解析用户 ID 并将 tham 添加到 txt 文件中。最好的方法是检查这个 txt 是否有这个 id 跳过它(在下一次解析时)。txt 的大小从 5-..... mb 上升
我尝试将 ID 添加到列表中,但是当文件大小大于 5mb 时,应用程序开始挂起
嗨,大家好。我有一个循环来解析用户 ID 并将 tham 添加到 txt 文件中。最好的方法是检查这个 txt 是否有这个 id 跳过它(在下一次解析时)。txt 的大小从 5-..... mb 上升
我尝试将 ID 添加到列表中,但是当文件大小大于 5mb 时,应用程序开始挂起
使用HashSet<int>
or HashSet<string>
,收集其中的 id,然后最后将结果写入文本文件。
PS:注意 HashSet 是 O(1) 而 List 是 O(n)
您可能应该将文本文件中的所有 ID 加载到某个集合中,并检查该集合是否包含这些 ID。
老实说,我认为没有比这更有效的方法了。
我相信一个经验法则是用空间交换时间。如果您想更快地复制并避免一次又一次地查看文件,那么您可以维护一个数组或链表或哈希表,其中也存储了 id
var userIsAlreadyThere = File.ReadLines(path).Contains(userid);