Flutter 中操作列表中的 Map 的常用用法:
查找元素:
//查找一个对象: Map<String, dynamic>? findObjectById(int id) { return list.firstWhere((element) => element['id'] == id, orElse: () => null); }
//查找一个对象(可能查不到)
import 'package:collection/collection.dart'; // 需要导入该包
PageTextModelItem? text = pageTextList.value.firstWhereOrNull(
(obj) => obj.picId == 1,
//返回满足条件的第一个元素在列表中的索引
int index = pageTextList.value.indexWhere(
(obj) => obj.picId == "${pagePictureIndex + 1}",
);
void main() { print(findObjectById(2)); // 输出: {id: 2, name: Bob} } //查找字段等于某个参数的所有对象: List<Map<String, dynamic>> findObjectsByName(String name) { return list.where((element) => element['name'] == name).toList(); }
void main() { print(findObjectsByName('Alice')); // 输出: [{id: 1, name: Alice}, {id: 3, name: Alice}] }
遍历列表中的 Map 元素:
//使用forEach循环 List<Map<String, dynamic>> list = [ {'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}, {'id': 3, 'name': 'Charlie'}, ]; void main() { list.forEach((element) { element.forEach((key, value) { print('$key: $value'); }); print('---'); }); } //使用for循环 List<Map<String, dynamic>> list = [ {'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}, {'id': 3, 'name': 'Charlie'}, ]; void main() { for (int i = 0; i < list.length; i++) { Map<String, dynamic> element = list[i]; element.forEach((key, value) { print('$key: $value'); }); print('---'); } }
添加新的 Map 元素到列表中:
List<Map<String, dynamic>> list = [ {'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25} ]; // 添加新的 Map 元素 Map<String, dynamic> newElement = {'name': 'Charlie', 'age': 35}; list.add(newElement);
替换元素:
List<Map<String, dynamic>> myList = [ {'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}, {'id': 3, 'name': 'Alice'}, ]; void main() { myList.forEach((element) { if (element['name'] == 'Alice') { element['name'] = 'Eve'; // 将名字为'Alice'的元素替换为'Eve' } }); print(myList); // 输出: [{id: 1, name: Eve}, {id: 2, name: Bob}, {id: 3, name: Eve}] }
删除:
// 删除指定的 Map 元素 list.remove({'name': 'Bob', 'age': 25}); // 删除匹配条件的 Map 元素 list.removeWhere((map) => map['age'] < 28);
其他常见操作:
// 获取列表长度 int length = list.length; // 判断列表是否为空 bool isEmpty = list.isEmpty; // 清空列表 list.clear();
随机排序
//这段代码看起来是在Flutter中使用的语法,它的作用是将 gamesPicModelItemList 列表进行随机排序,
并将排序后的结果赋值给 newgamesPicModelItemLis newgamesPicModelItemList.assignAll(gamesPicModelItemList.toList()..shuffle());
浙公网安备 33010602011771号