我有两个带有不同字段的类似对象的列表。
l = QGridLayout()
l.addWidget(QLabel("child1"), 0, 0)
l.addWidget(QLabel("child2"), 0, 1)
...
parentLayout.addLayout(l)
我必须检查List1中的相似字段是否与List2中的相似字段匹配。如果有任何不同之处,我想更新List1中的该字段。最有效的方法是什么?
答案 0 :(得分:0)
您可以这样做
QMainWindow::addToolBar(QToolBar *toolbar)
这将从List2中添加List1中不存在的对象,并将其存储在变量list3中。
然后您可以使用来更新List1,
var list3 = List2.Except(List1);
答案 1 :(得分:0)
如果需要匹配相似的字段,则可以像下面这样使用Intersect:
List<BMS_ROAD_INV> list1 = bmsContext.BMS_ROAD_INV.ToList();
List<RoadInventory> List2 = context.RoadInventories.ToList();
var commonUsers = list1.Select(a => a.Field1).Intersect(list2.Select(b => b.Field1));
如果Field1是一个类,则需要实现IEquatable接口。或者您可以使用接受自定义IEqualityComparer
的Intersect重载查找公共数据的另一种方法:
var commonData = (from objA in list1
join objB in list2 on objA.Field1 equals objB.Field2
select objA/*or objB*/).ToList();