首页 > 解决方案 > 排序列表颤动

问题描述

我正在寻找一种最简单的方法来根据给定值对列表进行排序,而不是使用两个列表。

示例我有列表[a,b,c,d],具有给定的值d,我可以这样排序:

在此处输入图像描述

但是,如果我有一个对象列表,如何根据给定值对其进行排序?

例子

List<ABC> list = [{fid:1,name:"a"},{fid:2,name:"b"},{fid:3,name:"c"},{fid:4,name:"d"}]

我的值为 3。我想将列表排序为

List<ABC> list = [{fid:3,name:"c"},{fid:1,name:"A"},{fid:2,name:"b"},{fid:4,name:"d"},{fid:4,name:"d"}]

标签: listflutterdartarraylist

解决方案


您只需要在此处执行自定义排序,其余内容将保持不变。

  List list = [{"fid":1,"name":"z"},{"fid":10,"name":"b"},{"fid":5,"name":"c"},{"fid":4,"name":"d"}];
  
  list.sort((a,b)=> a["fid"].compareTo(b["fid"]));
  
  int fidIndex=4;
  
  int indexToRemove=list.indexWhere((element) => element["fid"]==fidIndex);

  Map<String,dynamic> removedItem= list.removeAt(indexToRemove);

  list.insert(0,removedItem); 

  print(list);

推荐阅读