flutter - 如何从Map中的值中选择List中的特定Map?

标签 flutter dart

我想知道如何从 map 内的值获取列表中的特定 map 。例如,如果我有:

List<Map> aList = [{'id':'1'},{'id':'8'},{'id':'31'}];

如何获取 id == 8 的 map ?

我正在 DartPad 上尝试,但在将结果分配给列表时总是遇到错误,并且没有找到有关如何正确将WhereIterable分配给列表的答案。

void main() {
  List map = [
    {'id':'pez', 'num': 25},
    {'id':'lava', 'num': 3},
    {'id':'mar', 'num': 81},
    {'id':'pan', 'num': 33},
    {'id':'lava', 'num': 73},
  ];

  List otherMap = map.where((item) => item['id'] == 'mar');
  print(otherMap);
}
//ERROR:
Uncaught Error: TypeError: Instance of 'WhereIterable<dynamic>': type 'WhereIterable<dynamic>' is not a subtype of type 'List<dynamic>'

最佳答案

必须在 where() 之后使用 .toList() 方法

List otherMap = map.where((item) => item['id'] == 'mar').toList();

关于flutter - 如何从Map中的值中选择List中的特定Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59166616/

相关文章:

exception - 在Dart中抛出错误的正确方法

dependency-injection - Angular dart 中的依赖注入(inject)如何知道将哪个元素传递给装饰器构造函数?

node.js - 使用 IO 套接字和 nodejs 在 flutter 中推送通知

dart - 如何从 Flutter 中的字符串中删除/检测整个表情符号?

flutter - 在 Dart 编程 flutter 中将两个列表转换为字典

firebase - Flutter:一个应用程序中有多个 firebase 项目,但显示的数据不正确

flutter - 键盘将 modalBottomSheet 推出边界,resizeToAvoidBottomInset 不起作用

flutter - 我可以在flutter的** noSuchMethod()**内部使用什么参数来处理空快照数据?

flutter - flutter 通知中没有振动

android - 元素类型 '{0}'无法分配给列表类型 '{1}' flutter