【发布时间】:2023-03-20 12:50:02
【问题描述】:
我的 C# 应用程序中有两个列表,如下所示(名称):
- prepared
- DBList
TransactionDetails 类型的准备列表包含我需要在 DBList 中添加的缺失项。
例如,如果我在准备好的列表中有这些项目,如下所示:
TransactionID
1
2
3
4
5
6
7
8
9
我的 DBList 有:
TransactionID
1
2
3
4
5
6
我想比较这两个列表,找到不在 DBList 中的匹配 TransactionID,然后将它们添加到 DBList。之后我将清除准备好的列表并将更改保存在数据库中;
这是我到目前为止所做的:
var newList = prepared.Intersect(DBList).ToList();
prepared.Clear();
ctx.EbayUserTransactions.AddRange(newList);
ctx.SaveChanges();
但由于某种原因,newList 列表始终为空。我该如何正确执行此操作?
编辑,DBList 项目的输出将是:
TransactionID
1
2
3
4
5
6
7
8
9
【问题讨论】:
-
你试过
prepared.Except(DBList).ToList()吗? DBList 是否实现 IEnumerable? -
@MatteoMarciano-MSCP 是的,但是 except 方法如何知道要在两个列表中比较哪个属性...我要比较它们的属性是 TransactionID
-
对你的班级的形式没有太多线索
标签: c# asp.net asp.net-mvc linq compare