如何让下面这段Flutter代码中的list1按照名称自动排序而list2中的每一项在排序后仍与list1中原来的一项对应ndartnlistString-list1-=-apple-pear-peach-banana;nlistint-list2-=-15-16-20-45;n
可以使用List.sort()方法对list1进行排序,同时根据排序后的下标对list2进行同步排序,保证每一项仍与list1中原来的一项对应。代码如下:
List<String> list1 = ["apple", "pear", "peach", "banana"];
List<int> list2 = [15, 16, 20, 45];
// 使用List.sort()方法对list1进行排序
list1.sort();
// 对list2进行同步排序
list2.sort((a, b) => list1.indexOf(list1.firstWhere((element) => element == a.toString())).compareTo(list1.indexOf(list1.firstWhere((element) => element == b.toString()))));
print(list1); // 输出 ["apple", "banana", "peach", "pear"]
print(list2); // 输出 [15, 45, 20, 16]
其中,list2的排序方法使用了List.indexOf()和List.firstWhere()方法,找到元素在排序后的list1中的下标,再根据下标进行排序。
原文地址: https://www.cveoy.top/t/topic/nz7 著作权归作者所有。请勿转载和采集!