Sorting 对两个非'的列表进行排序;省道中的t相关
假设我在Dart中有两个列表Sorting 对两个非'的列表进行排序;省道中的t相关,sorting,dart,Sorting,Dart,假设我在Dart中有两个列表 列表a=[Instance of,Instance of,Instance of…] 它包含一个类的实例和列表b=[165,75,123…] 我想按升序对列表b进行排序,但我想同样的排序也反映在列表a上。我该怎么做 我不确定这是否能以更有效的方式完成,但你可以这样做。我假设您要排序的两个列表具有相同的长度 class Something { final String name; Something(this.name); @override St
列表a=[Instance of,Instance of,Instance of…]
它包含一个类的实例和列表b=[165,75,123…]
我想按升序对
列表b
进行排序,但我想同样的排序也反映在列表a
上。我该怎么做 我不确定这是否能以更有效的方式完成,但你可以这样做。我假设您要排序的两个列表具有相同的长度
class Something {
final String name;
Something(this.name);
@override
String toString() => name;
}
class Pair<T1, T2> {
final T1 a;
final T2 b;
Pair(this.a, this.b);
}
void main() {
final a = [Something('A'), Something('E'), Something('B'), Something('C')];
final b = [1, 5, 2, 3];
final tempList =
List.generate(a.length, (i) => Pair(a[i], b[i]), growable: false)
..sort((p1, p2) => p1.b.compareTo(p2.b));
for (var i = 0; i < tempList.length; i++) {
final pair = tempList[i];
a[i] = pair.a;
b[i] = pair.b;
}
print(a); // [A, B, C, E]
print(b); // [1, 2, 3, 5]
}
分类{
最后的字符串名;
某物(这个名字);
@凌驾
字符串toString()=>名称;
}
类对{
最终T1 a;
最终t2b;
配对(这个a,这个b);
}
void main(){
词尾a=[某物('a')、某物('E')、某物('B')、某物('C')];
最终b=[1,5,2,3];
最终圣殿骑士=
List.generate(a.length,(i)=>Pair(a[i],b[i]),可增长:false)
…排序((p1,p2)=>p1.b.compareTo(p2.b));
for(var i=0;i
“但我希望同样的内容也反映在列表a上”你是什么意思?你的意思是想让列表a
排序的ASC/DESC与列表b
的相同排序标准相匹配吗?现在还不清楚你想在这里实现什么。。。你能给我们看一下你的一些代码吗?@don prog抱歉我不清楚,我希望a
的排序方式与b
的排序方式相同。@Balastrong抱歉不清楚,a
的排序方式应该与b
的排序方式完全相同。b
好的,也许比julemand101所说的正确解决方案——在你自己的类中使用一个列表(或类似元组的东西)作为项而不是两个列表。