gpt4 book ai didi

c# - 在 C# 2.0 中同步两个 IList 的最佳算法

转载 作者:可可西里 更新时间:2023-11-01 08:46:36 25 4
gpt4 key购买 nike

想象一下下面的类型:

public struct Account
{
public int Id;
public double Amount;
}

同步两个的最佳算法是什么IList<Account>在 C# 2.0 中? (没有 linq)?

第一个列表(L1)是引用列表,第二个(L2)是根据第一个来同步的:

  • L2 中不再存在于 L1 中的所有帐户必须从 L2 中删除
  • 必须更新 L1 中仍然存在的 L2 中的所有帐户(金额属性)
  • 所有在 L1 中但尚未在 L2 中的帐户必须添加到 L2

Id 标识帐户。找到一种朴素且有效的算法并不难,但我想知道是否有一种智能解决方案可以在不破坏可读性和性能的情况下处理这种情况。

编辑:

  • 帐户类型无关紧要,可以是一个类,具有属性、相等成员等。
  • L1 和 L2 未排序
  • L2 项不能被 L1 项替换,必须更新它们(逐个字段,逐个属性)

最佳答案

首先,我会摆脱可变结构。可变值类型从根本上来说是一件坏事。 (与公共(public)领域一样,IMO。)

可能值得构建一个字典,这样您就可以轻松地比较两个列表的内容。一旦掌握了检查存在/不存在的简单方法,剩下的就应该很简单了。

老实说,听起来您基本上希望 L2 成为 L1 的完整副本...清除 L2 并调用 AddRange?还是您在更改 L2 时还想采取其他操作?

关于c# - 在 C# 2.0 中同步两个 IList 的最佳算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/161432/

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