两种类型产品表的比较
本文关键字:比较 类型 两种 | 更新日期: 2023-09-27 17:49:33
列表A和列表B的类型都是product
List A = new List();
List B = new List();
为简单起见,我在每个列表中都提到了product。这里的数字是指产品ID。
List A包含1、2、3、4、5
List B包含1、2、3、4、5、6、7
我想知道c# asp.net中比较两个列表并同步它们的代码。这意味着如果列表B有更多的产品(比如19,20),它会将19,20复制到列表a。
我将如何比较数量属性。我必须检查两个列表中是否有相同的产品ID。如果列表B中的一个不同于列表A,那么它将检查qty属性。它会使两者同步。(从列表B到列表A)
其次,如果我从B中删除了一个产品(比如3),它也应该从列表a中删除。
无论我在List B中做什么(这是一个新的会话),它必须同步到List A。这包括添加新产品、删除和更新特定产品的数量。
如果List B总是会赢,为什么还要同步呢?
ListA.Clear();
ListA.AddRange(ListB.Items);
总结:
- 对两个列表进行排序。
- 声明两个索引
- 循环,当索引器小于它们各自列表的长度
- 使用比较器来判断当前索引处的项是否相同。
- 构建基于比较器结果从目标列表中添加或删除项的逻辑
- 根据先前的操作适当地增加索引
你可能不得不花一点时间来调整代码,使其正常工作,但这是一般的过程。
另一种选择是直接清除第二个列表并添加第一个列表中的所有项。
"最佳"方法高度依赖于你在做什么和为什么。
您可以尝试将您的ListA
和ListB
作为Product
的ObservableCollection
。然后在CollectionChanged
事件处理程序中编写代码。