以下是一个使用Dart语言比较两个对象列表A和B,并将结果存储在另一个列表C中的示例代码:
class MyClass {
int id;
String name;
MyClass(this.id, this.name);
}
void main() {
List listA = [
MyClass(1, 'Object 1'),
MyClass(2, 'Object 2'),
MyClass(3, 'Object 3'),
];
List listB = [
MyClass(2, 'Object 2'),
MyClass(4, 'Object 4'),
MyClass(3, 'Object 3'),
];
List listC = compareLists(listA, listB);
print(listC);
}
List compareLists(List listA, List listB) {
List listC = [];
for (var i = 0; i < listA.length; i++) {
bool found = false;
for (var j = 0; j < listB.length; j++) {
if (listA[i].id == listB[j].id && listA[i].name == listB[j].name) {
found = true;
break;
}
}
if (!found) {
listC.add(listA[i]);
}
}
return listC;
}
在上面的示例中,我们定义了一个MyClass
类,该类具有id
和name
属性。我们创建了两个对象列表listA
和listB
,并在两个列表中添加了一些对象。
然后,我们使用compareLists
函数比较listA
和listB
,并将不在listB
中的对象存储在listC
中。内部使用了两个嵌套的循环来遍历两个列表,并检查每个对象的id
和name
属性是否相等。如果没有找到匹配的对象,则将其添加到listC
中。
最后,我们打印出listC
,以查看结果。在上面的示例中,listC
将包含MyClass(1, 'Object 1')
,因为它在listA
中存在但在listB
中不存在。