gpt4 book ai didi

algorithm - Datagridview 中的 VLookup (VB.NET)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:35:07 26 4
gpt4 key购买 nike

我有 2 个数据 GridView (比如 DGV-A 和 DGV-B),每个 View 只有一列。我想查找 DGV-A 中的项目是否也存在于 DGV-B 中。基本上,我正在寻找 MS-Excel 中可用的 VLookup 函数。这可以很简单地完成,总线遍历 DGV-A 中的值,对于 DGV-A 的每次迭代,遍历 DGV-B 并查看它是否存在(一旦我们找到该项目,就中止 DGV-B 的迭代存在)。这需要对 DGV-A 中的所有项目完成。而且因为我的 DGV 可能在每个数据 GridView 中有大约 200 个项目(例如,如果 DGV 每个包含 200 个项目,最坏情况下,我将进行 200*200 = 40000 次比较),恐怕不会很快。

有什么方法/算法可以以最佳方式做到这一点。 (我没有任何数据绑定(bind)或数据库,因此不能使用 SQL/DB 引擎;我在 DGV 中的数据是根据用户操作以编程方式动态生成的)

最佳答案

在您知道确实存在性能问题之前,优化代码以提高性能通常不是一个好主意。但在这种情况下,我也会使用另一种解决方案,以避免 O(n * m) 操作。

我建议将一个列表中的所有项目插入到哈希集中 - 如果您指定足够大的初始大小并避免以这种方式调整哈希集的大小,这将是 O(n)。然后只需在 O(m) 中的第二个列表中的每个项目的哈希集中执行查找。这样你就可以将 O(n * m) 降为 O(n + m)

关于algorithm - Datagridview 中的 VLookup (VB.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1530334/

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