List<Map<String, dynamic>> list=[
{_id: 1, product_name: Name1, product_company: T, product_barcode: 1, product_shopping_date: 1610467398845, product_expiration_date: 1610414640000, product_origin_country: Musterherstellungsland, product_kind_of_crowd: Stück, product_availability: 1},
{_id: 2, product_name: Name2, product_company: T, product_barcode: 1, product_shopping_date: 1610467518522, product_expiration_date: 1610406000000, product_origin_country: Musterherstellungsland, product_kind_of_crowd: Stück, product_availability: 1},
{_id: 3, product_name: Name3, product_company: T, product_barcode: 1, product_shopping_date: 1610467551377, product_expiration_date: 1610423280000, product_origin_country: Musterherstellungsland, product_kind_of_crowd: Stück, product_availability: 1}]
如何按product_expiration_date对列表进行排序?
我试过了
list.sort((a, b) {
return (a['product_expiration_date']).compareTo(b['product_expiration_date']);
});
但这是结果:
E/flutter ( 617): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Unsupported operation: read-only
E/flutter ( 617): #0 QueryResultSet.[]= (package:sqflite_common/src/collection_utils.dart:108:5)
E/flutter ( 617): #1 Sort._insertionSort (dart:_internal/sort.dart:70:10)
E/flutter ( 617): #2 Sort._doSort (dart:_internal/sort.dart:58:7)
E/flutter ( 617): #3 Sort.sort (dart:_internal/sort.dart:33:5)
E/flutter ( 617): #4 ListMixin.sort (dart:collection/list.dart:355:10)
...
有人有解决方案吗?
您的列表是不可变的,因此错误提示为“只读”。您必须创建列表的可修改副本,以便排序功能可以对其进行修改。然后,您可以使用现有的sort实现。
List<Map<String, dynamic>> listCopy = List.of(list);
listCopy.sort((a, b) {
return (a['product_expiration_date']).compareTo(b['product_expiration_date']);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句