Dart中对象列表中对象属性值求和的干净方法

Dart中对象列表中对象属性值求和的干净方法,dart,Dart,假设我有一个类CartItem class CartItem { final int amount; CartItem({this.amount}); } 以及cartItems列表中的两个CartItem实例 CartItem itemOne = CartItem(amount: 10); CartItem itemTwo = CartItem(amount: 25); List<CartItem> cartItems = [itemOne, itemTw

假设我有一个类CartItem

class CartItem {
  final int amount;

  CartItem({this.amount});
}
以及cartItems列表中的两个CartItem实例

  CartItem itemOne = CartItem(amount: 10);
  CartItem itemTwo = CartItem(amount: 25);

  List<CartItem> cartItems = [itemOne, itemTwo];
CartItemOne=CartItem(金额:10);
CartItem2=CartItem(金额:25);
List cartItems=[itemOne,itemTwo];
获取cartItems总量的最干净方法是什么?

int total=cartItems.fold(0,(总和,项目)=>sum+item.amount);
尝试使用和方法

这对我有用

double total = list.fold(0, (tot, item) => tot.toDouble() + item.amount);
print('Total is $total');

reduce
返回与列表内容类型相同的对象,在本例中为
CartItem
。您只能使用它对自身可求和的值列表求和。因此,这段代码不会编译。当然,我以前忘记添加转换了。答案已更新。我刚在dartpad中尝试过。它会导致一个错误:“错误:没有为类‘Object’定义方法“+”@YuriyKots它对我来说很好。我的猜测是您实例化
cartItems
的方式,类型推断认为它是
List
List
而不是
List
double total = list.fold(0, (tot, item) => tot.toDouble() + item.amount);
print('Total is $total');