我的C#应用程序中有两个列表,如以下(名称):
List<String[]> list = new ArrayList<>();
Pattern pattern = Pattern.compile("\\s+");
while ((line = bufferedReader.readLine()) != null) {
list.add(pattern.split(line, -1));
}
String[][] mazeNew = list.toArray(new String[0][0]);
TransactionDetails类型的prepard列表包含我需要在DBList中添加的缺失项。
例如,如果我将这些项目放在准备好的列表中,如下所示:
- prepared
- DBList
我的DBList有:
TransactionID
1
2
3
4
5
6
7
8
9
我想比较这两个列表,找到不在DBList中的匹配TransactionID,然后将它们添加到DBList。之后,我将清除准备好的列表并保存更改DB;
这是我到目前为止所做的:
TransactionID
1
2
3
4
5
6
但是newList列表由于某种原因总是空的。我该怎么做呢?
编辑,DBList项目的输出将是:
var newList = prepared.Intersect(DBList).ToList();
prepared.Clear();
ctx.EbayUserTransactions.AddRange(newList);
ctx.SaveChanges();
答案 0 :(得分:3)
您可以使用LINQ:
DBList.AddRange(prepared.Where((i) => DBList.FindIndex((el) => el.Transaction.ID == i.TransactionID) == -1));