【问题标题】:Turning List<MapEntry<int, bool>> into Map<int, bool> in dart在 dart 中将 List<MapEntry<int, bool>> 变成 Map<int, bool>
【发布时间】:2021-07-21 03:32:39
【问题描述】:

我想创建一个映射,将 1 到 10 的数字映射到计数值。目前,我这样做:

Iterable<int> spread = Iterable<int>.generate(10);
Iterable<Future<MapEntry<int, bool>>> futureEntries= spread.map((i) async {
  int level = i + 1;
  bool levelRight = await checkCountForLevel(level);
  return MapEntry(level, levelRight);
});
List<MapEntry<int, bool>> listOfEntries = await Future.wait(futureEntries);
Map<int, bool> levelCorrect = Map.fromIterable(listOfEntries);

但是,我得到了错误:

E/flutter (29690): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:类型“MapEntry”不是“key”的“int”类型的子类型'

我是否必须使用与 Map.fromIterable 不同的方法?

【问题讨论】:

    标签: dart dart-map


    【解决方案1】:

    在我尝试修复您的解决方案之前,我只想知道您是否知道您可以这样做?

    Future<void> main() async {
      final levelCorrect = {
        for (var level = 1; level <= 10; level++)
          level : await checkCountForLevel(level)
      };
    }
    

    如果你想使用自己的解决方案,你应该使用Map.fromEntries而不是Map.fromIterable。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-14
      • 2015-12-01
      • 2021-01-17
      • 2014-02-03
      • 2018-08-06
      相关资源
      最近更新 更多