gpt4 book ai didi

list - 列表的 Flutter 复杂排序

转载 作者:IT王子 更新时间:2023-10-29 07:15:20 26 4
gpt4 key购买 nike

我有两个列表

列表 1 包含一个对象。该对象的一个​​方面是人员 ID [1,2,3,4,5],列表 2 包含符合条件 [1,3,5] 的人员 ID

我需要过滤列表 1 以仅显示满足条件的对象。

类似于:

 var sortedList = list1
.where((item) => item.personID == "Any of the ids contained within list2)
.toList();

因此 sortedList = id 1,3,5 的对象

最佳答案

简答

Iterable<Item> filteredList = list.where((element) {
return list2
.map((elem) => elem.personId)
.toList()
.contains(element.personId);
});

你可以看看这个 Dart Playground。 Dartpad

完整脚本

class Item {
int personId;
Item({this.personId});

String toString() {
return "$personId";
}
}

List<Item> list = [
Item(personId: 1),
Item(personId: 2),
Item(personId: 3),
Item(personId: 4),
Item(personId: 5),
];

List<Item> list2 = [
Item(personId: 1),
Item(personId: 3),
Item(personId: 5),
];

void runFunction() {
Iterable<Item> filteredList = list.where((element) {
return list2
.map((elem) => elem.personId)
.toList()
.contains(element.personId);
});
List<Item> result = filteredList.toList();
print(result);
}

main() {
runFunction();
}

关于list - 列表的 Flutter 复杂排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57554003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com