Sorting 在Dart中对地图列表进行排序-在Dart中进行二级排序

Sorting 在Dart中对地图列表进行排序-在Dart中进行二级排序,sorting,dart,Sorting,Dart,我有一个这样的地图列表: var关联=[{'name':'EG','description':'Evil Genius'}, {'name':'NaVi','description':'Natus Vincere'}]; 变量成员=[ {'associationName':'EG','firstName':'Bob','lastName':'Dylan','email':'bd@gmail.com'}, {'associationName':'NaVi','firstName':'John','

我有一个这样的地图列表:

var关联=[{'name':'EG','description':'Evil Genius'},
{'name':'NaVi','description':'Natus Vincere'}];
变量成员=[
{'associationName':'EG','firstName':'Bob','lastName':'Dylan','email':'bd@gmail.com'},
{'associationName':'NaVi','firstName':'John','lastName':'Malkovich','email':'jm@gmail.com'},
{'associationName':'EG','firstName':'Charles','lastName':'Darwin','email':'cd@gmail.com'}
];
我想写一个代码,首先按照姓氏的字母顺序对成员列表进行排序,然后按照名字进行排序。此外,我希望能够找到姓氏以指定字母开头的成员。举个例子,用D,我们可以得到鲍勃·迪伦和查尔斯·达尔文。我可以用一个地图或一个列表来管理它,但是合并一个地图列表会使它更加困难

感谢您的帮助。

要排序:

members.sort((m1,m2){
var r=m1[“lastName”]。与(m2[“lastName”])相比;
如果(r!=0)返回r;
返回m1[“firstName”]。与(m2[“firstName”])比较;
});
要筛选:

members.where((m)=>m['lastName'].startsWith('D');
列出我的列表=[
{'name':'ifredom',年龄:23},
{'name':'JackMa',年龄:61},
{‘姓名’:‘扎扎会’,年龄:48},
];
myList.sort((a,b)=>(b.age).compareTo(a.age));//排序表
印刷品(myList);

什么是
关联
列表?@GünterZöchbauer It for associations。一对多。键是“associations”表中的“name”和“members”表中的“associationName”。
List<Map> myList = [
  { 'name' : 'ifredom',age:23},
  { 'name' : 'JackMa',age:61},
  { 'name' : 'zhazhahui',age:48},
];

myList.sort((a, b) => (b.age).compareTo(a.age)); /// sort List<Map<String,dynamic>>

print(myList);