我有这样的地图列表:
var associations = [{'name': 'EG', 'description': 'Evil Genius'},
{'name': 'NaVi', 'description': 'Natus Vincere'}];
var members = [
{'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'}
];
Run Code Online (Sandbox Code Playgroud)
我想编写一个代码,按先前的姓氏按字母顺序排序成员列表,然后按名字排序.此外,我希望能够找到姓氏以指定字母开头的成员.例如,有了D,我们就会得到Bob Dylan和Charles Darwin.我能够使用单个地图或单个列表来管理它,但是组合地图列表会使其变得更加困难.
谢谢你的帮助.
Ale*_*uin 17
排序 :
members.sort((m1, m2) {
var r = m1["lastName"].compareTo(m2["lastName"]);
if (r != 0) return r;
return m1["firstName"].compareTo(m2["firstName"]);
});
Run Code Online (Sandbox Code Playgroud)
过滤:
members.where((m) => m['lastName'].startsWith('D'));
Run Code Online (Sandbox Code Playgroud)
小智 10
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);
Run Code Online (Sandbox Code Playgroud)