Sorting 对两个非'的列表进行排序;省道中的t相关

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

假设我在Dart中有两个列表

列表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所说的正确解决方案——在你自己的类中使用一个列表(或类似元组的东西)作为项而不是两个列表。