我的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));

08-06 19:48