微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 forEach 样式循环中将某种类型的迭代放入 List 中 - Dart/Flutter

如何解决如何在 forEach 样式循环中将某种类型的迭代放入 List 中 - Dart/Flutter

这是一个很难表达的问题,所以如果我需要详细说明,请告诉我。

我正在使用 Hive 框进行持久化。这对我来说是一个挑战。如何将我的用户数据从 Hive 盒子中取出并放入列表中以进行其他任务和数据处理?我已经想出了如何以一种可以在 DataTable 中向用户显示所有属性的方式从框中获取单个对象属性。现在我想处理一些数字。

我希望能够将循环中的数据迭代放入一个列表中。事实证明这很困难。这里的示例:我想将“总”放入列表中,以便我可以处理数据。

我为此使用的扩展

extension ExtendedIterable<E> on Iterable<E> {
  Iterable<T> mapIndex<T>(T f(E e,int i)) {
    var i = 0;
    return this.map((e) => f(e,i++));
  }
  void forEachIndex(void f(E e,int i)) {
    var i = 0;
    this.forEach((e) => f(e,i++));
  }
}

我在尝试什么

var Box = Hive.Box(incoMetable).values.toList();
                    Box.forEachIndex(
                      (e,i) {
                        final hiveBox = Hive.Box(incoMetable);
                        final incomeData = hiveBox.getAt(i) as Income;
                        final grossData = incomeData.gross;
                        List<double> grossList = [];
                        grossList.add(grossData);       **// This does not work- does not properly add**
                        print(grossData);
                      },);

上述grossData的当前输出

Flutter: 456.0
Flutter: 456.0
Flutter: 34.0
Flutter: 45.0
Flutter: 55.0
Flutter: 44.0
Flutter: 55.0

我不知道如何将grossData 放入我的grossList 中。如何做到这一点?

编辑:作为在这种情况下的一个例子,我的意思是处理列表中的数据,在这种情况下,我想将所有总收入数字相加,这可以通过多种方式完成,但我需要所有我在列表中的数据。

编辑:调用 add() 和打印列表时,我得到:

Flutter: [456.0]
Flutter: [456.0]
Flutter: [34.0]
Flutter: [45.0]
Flutter: [55.0]
Flutter: [44.0]
Flutter: [55.0]

List 长度保持为 1

解决方法

尝试将以下代码移到 for 循环之外:List GrossList = [];

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。