flutter - 为什么 .contains 不 checkin List<Map> ?

标签 flutter dart

功能:

var mapList = [
  {"id": "1", "name": "zein"},
  {"id": "2", "name": "john"},
];

print(mapList.contains({"id": "1", "name": "zein"}));

结果:

该列表实际上包含该值。为什么还是假?

最佳答案

根据@enzo的建议,您可以使用mapEquals来比较两个 map 对象:

import 'package:flutter/foundation.dart';

void main() {
  var mapList = [
    {"id": "1", "name": "zein"},
    {"id": "2", "name": "john"}
  ];

  var toCheck = {"id": "1", "name": "zein"};

  print(mapList.any((e) => mapEquals(e, toCheck))); // true
  
}

或者,您可以迭代列表并检查为:

mapList.forEach((e) {
  print(mapEquals(e, toCheck));
});

关于flutter - 为什么 .contains 不 checkin List<Map> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68233390/

相关文章:

dart - flutter 用户界面 : Absolute positioned element with fixed height and 100% width

flutter - websocket 自动重新连接 flutter 和 Riverpod?

flutter - 在复选框选择屏幕上使用Navigator.pop时,如何在其他屏幕上显示列表?

dart - 如何在 Flutter 中为列表更改设置动画

flutter - 尝试对查询中的 Firestore 结果进行排序

flutter - 如何使小部件仅粘在页面底部

flutter - 是否可以在 flutter 中更改 showGeneralDialog() 的默认动画?

flutter - 如何在 flutter 中从该列表中导入文本

flutter - 类型 'MappedListIterable<dynamic, Widget>' 不是类型 'Widget' 的子类型

json - Dart Http 客户端返回截断的响应,当我打印到控制台时截断略有不同