gpt4 book ai didi

c# - 使用字典进行重复数据删除的更好方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:12:15 25 4
gpt4 key购买 nike

我得到了包含多个重复行的大数据集。我想用字典去重,然后把数据插入到DB中。

row.key 不能设置为数据库主键。所以,我不能使用“DB Primary key fail to duplicate”。

处理将是百万行。

我有两个计划,你觉得哪个更快?

计划A:

try 
{
dictionary.add(row);
insert into DB
}
catch
{}

B 计划:

if( ! dictionary.containskey(row.key) )
{
dictionary.add(row);
insert into DB
}

那如果我对进程使用多线程呢?那将是多个线程访问同一个 block 。这样会安全高效吗?

最佳答案

首先,这里没有键/值关系,因此集合而不是映射是合适的。您应该使用 HashSet 而不是 Dictionary 来跟踪 key 。

接下来,查找基于散列的结构非常快,最重要的是,*不依赖于集合的大小。查找包含 100 万个项目的 HashSet 与查找包含 5 个项目的集合一样快。该常量值几乎肯定比依赖抛出的异常更快。

最后,HashSetAdd 方法指示是否添加了该项目,因此您甚至根本不需要进行任何额外的查找。

除此之外,对控制流使用异常除了性能不佳之外,也是不好的做法。为了代码清晰起见,您应该在真正异常的情况下使用异常。

关于c# - 使用字典进行重复数据删除的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20911249/

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