检查两个列表是否有任何共同的元素
Check if two lists have any element in common
如何从 list2
添加到 list1
个元素,其中 type
键的值不同?
var list1 = <Map<String, String>>[
{'id': '123', 'type': 'START', 'location': 'Vienna'},
];
var list2 = <Map<String, String>>[
{'type': 'START'},
{'type': 'STOPOVER'},
{'type': 'DESTINATION'},
{'type': 'END'}
];
所以 list1
最后应该是这样的:
list1 = <Map<String, String>>[
{'id': '123', 'type': 'START', 'location': 'Vienna'},
{'type': 'STOPOVER'},
{'type': 'DESTINATION'},
{'type': 'END'}
];
list1.addAll(
list2.where((item) => list1.where((item2) => item['type'] != item2['type']).isNotEmpty)
);
命令式风格:
var result = <Map<String, String>>[];
for (var x2 in list2) {
final x1s_like_x2 = list1.where((x1) => x1['type'] == x2['type']);
if (x1s_like_x2.isEmpty) {
result.add(x2);
} else {
result.addAll(x1s_like_x2);
}
}
然后您将在 result
中获得合并列表。
如何从 list2
添加到 list1
个元素,其中 type
键的值不同?
var list1 = <Map<String, String>>[
{'id': '123', 'type': 'START', 'location': 'Vienna'},
];
var list2 = <Map<String, String>>[
{'type': 'START'},
{'type': 'STOPOVER'},
{'type': 'DESTINATION'},
{'type': 'END'}
];
所以 list1
最后应该是这样的:
list1 = <Map<String, String>>[
{'id': '123', 'type': 'START', 'location': 'Vienna'},
{'type': 'STOPOVER'},
{'type': 'DESTINATION'},
{'type': 'END'}
];
list1.addAll(
list2.where((item) => list1.where((item2) => item['type'] != item2['type']).isNotEmpty)
);
命令式风格:
var result = <Map<String, String>>[];
for (var x2 in list2) {
final x1s_like_x2 = list1.where((x1) => x1['type'] == x2['type']);
if (x1s_like_x2.isEmpty) {
result.add(x2);
} else {
result.addAll(x1s_like_x2);
}
}
然后您将在 result
中获得合并列表。