我的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
最佳答案
您可以使用LINQ:
DBList.AddRange(prepared.Where((i) => DBList.FindIndex((el) => el.Transaction.ID == i.TransactionID) == -1));