我有一个地图列表。以下是地图列表,
List teachers = [
{
'name':'John',
'subject':'English'
},
{
'name':'Rohan',
'subject':'Hindi'
},
{
'name':'Benny',
'subject':'English'
},
{
'name':'Rose',
'subject':'Tamil'
},
{
'name':'Shine',
'subject':'Kannada'
},
{
'name':'Tintu',
'subject':'English'
}
];
从这一点上,我想保留任何一位英语老师,并删除所有其他学科英语老师。以下是预期结果。
List teachers = [
{
'name':'John',
'subject':'English'
},
{
'name':'Rohan',
'subject':'Hindi'
},
{
'name':'Rose',
'subject':'Tamil'
},
{
'name':'Shine',
'subject':'Kannada'
},
];
您可以使用收集包并尝试以下操作:
var grouped =
groupBy(teachers, (Map<String, String> value) => value['subject']);
List<Map> result = grouped.entries.map((e) => e.value.first).toList();
print("result =$result");//result =[{name: John, subject: English}, {name: Rohan, subject: Hindi}, {name: Rose, subject: Tamil}, {name: Shine, subject: Kannada}]