在Flutter中过滤和排序来自Hive box的记录



我使用Hive与Flutter存储联系人键作为字母数字字符串,每个联系人数据是一个映射与时间戳在它

Box Rows =

Key.     => Value  
'abc123' => {'name': 'JK', 'country':'GB', 'timestamp': '568'},
'etergb' => {'name': 'FS', 'country':'DE', 'timestamp': '425'}
'546hfg' => {'name': 'TD', 'country':'GB', 'timestamp': '687'}

现在可以用过滤这些国家=GBASC/DESC

过滤器

final hiveBox = Hive.box<Dynamic>('<BOX_NAME>');
List values = hiveBox.values.toList();
filtered = box.values
.where((object) => object['country'] == 'GB')
.toList();

filtered.sort((a, b) => a['timestamp'].compareTo(b['timestamp']));

对于过滤,您可以使用For循环或Map。

可以执行排序。下面是一个例子:

var items = box.values.toList();
items.sort((a, b) => a.name.compareTo(b.name)); //ASC
items.sort((b, a) => a.name.compareTo(b.name)); //DESC

@HiveType(typeId: 0)
class CategoryModel extends HiveObject {
@HiveField(0)
String id;
@HiveField(1)
String name;
//...

CategoryModel(this.id, this.name);
}

相关内容

  • 没有找到相关文章

最新更新