我的 C# 应用程序中有两个列表,如下所示(名称):
- prepared
- DBList
类型为事务详细信息的准备列表包含我需要在DBList中添加的缺失项目。
因此,例如,如果我在准备好的列表中有这些项目,如下所示:
TransactionID
1
2
3
4
5
6
7
8
9
我的DBList有:
TransactionID
1
2
3
4
5
6
我想比较这两个列表,找到不在DBList中的匹配事务ID,然后将它们添加到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
您可以使用 LINQ:
DBList.AddRange(prepared.Where((i) => DBList.FindIndex((el) => el.Transaction.ID == i.TransactionID) == -1));