You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复仅匹配单个元素的列表查询函数以获取所有符合项?

问题分析与修改方案

原代码的问题在于每次匹配到符合条件的元素时,都会执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:31:03