将 C# 中的两个列表与 LINQ 进行比较并将缺少的项添加到实体类的最简单方法



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

相关内容

  • 没有找到相关文章

最新更新