hive本身似乎首先获取 index 处项的键,然后在调用deleteAt()时使用delete()函数 因此,与循环相比,一个潜在的解决方案是在所有索引上循环,使用box.keyAt()获取每个索引的键,然后使用box.deleteAll()删除项。 范例:
// Indices to Remove
List<int> indices = [5, 7, 8, 12];
// List to stores keys to remove
List<dynamic> toRemove = [];
// Get all keys from indices
for (int i in indices) {
toRemove.append(box.keyAt(i));
}
// Remove all keys from box
box.deleteAll(toRemove);
1条答案
按热度按时间x6492ojm1#
hive本身似乎首先获取 index 处项的键,然后在调用
deleteAt()
时使用delete()
函数因此,与循环相比,一个潜在的解决方案是在所有索引上循环,使用
box.keyAt()
获取每个索引的键,然后使用box.deleteAll()
删除项。范例:
字符串
然而,在
removeAt()
上循环似乎是最简单的解决方案(记住从最大索引到最小索引,而不是相反,否则会删 debugging 误的数据)。我将在几个小时内制作一个PR修复,这样你就可以运行类似
removeIndices()
的东西来删除索引列表。如果你有一个更好的名字,请让我知道通过回复。