我的 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));
关于c# - 使用 LINQ 比较 C# 中的两个列表并将缺失项添加到实体类的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41633948/