两种类型产品表的比较

本文关键字:比较 类型 两种 | 更新日期: 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);

总结:

  • 对两个列表进行排序。
  • 声明两个索引
  • 循环,当索引器小于它们各自列表的长度
  • 使用比较器来判断当前索引处的项是否相同。
  • 构建基于比较器结果从目标列表中添加或删除项的逻辑
  • 根据先前的操作适当地增加索引

你可能不得不花一点时间来调整代码,使其正常工作,但这是一般的过程。

另一种选择是直接清除第二个列表并添加第一个列表中的所有项。

"最佳"方法高度依赖于你在做什么和为什么。

您可以尝试将您的ListAListB作为ProductObservableCollection。然后在CollectionChanged事件处理程序中编写代码。