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

在C#2.0中同步两个IList的最佳算法,第1张

概述想象一下: public struct Account{ public int Id; public double Amount;} 什么是同步两个IList< Account>的最佳算法?在C#2.0? (无linq)? 第一列表(L1)是参考列表,第二列(L2)是根据第一列进行同步的列表: > L2中不再存在于L1中的所有帐户都必须从L2中删除 > L1中仍然存在的L2中的 想象一下:
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项目,它们必须被更新(按字段,按属性属性)

解决方法 一开始我会摆脱可变结构.可变价值类型是一个根本不好的事情. (公共场所,海事组织)

这可能值得建立一个词典,以便您可以轻松比较两个列表的内容.一旦你有了简单的检查存在/不存在的方式,其余的应该是直截了当的.

说实话,这听起来好像你基本上希望L2是L1的完整副本…清除L2,只是调用AddRange?或者你还想在改变L2时采取其他行动?

总结

以上是内存溢出为你收集整理的在C#2.0中同步两个IList的最佳算法全部内容,希望文章能够帮你解决在C#2.0中同步两个IList的最佳算法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1258169.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存