如何修复仅匹配单个元素的列表查询函数以获取所有符合项?
问题分析与修改方案
原代码的问题在于每次匹配到符合条件的元素时,都会执行newList.clear()清空已收集的结果,导致最终列表里只会保留最后一个匹配到的条目。要找出所有符合条件的条目,只需要移除这个清空操作,直接将匹配元素添加到列表中即可。
修改后的代码
List newList = []; if (value.isNotEmpty) { for (var element in pressures) { if (element.pressure.contains(value) || element.date.toString().contains(value)) { // 移除clear(),直接添加匹配元素 newList.add(element); } } items.value = newList; } else { items.value = pressures; }
额外优化建议
还可以用Dart的列表where方法简化代码,让逻辑更简洁:
if (value.isNotEmpty) { items.value = pressures.where((element) => element.pressure.contains(value) || element.date.toString().contains(value) ).toList(); } else { items.value = pressures; }
内容的提问来源于stack exchange,提问作者Alexandr
相关产品推荐
相关产品推荐

