-2

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

我正在使用 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]

并且列表长度保持为 1

4

1 回答 1

1

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

于 2021-03-07T20:17:48.610 回答