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

Dart如何按Chapter和Lesson搜索SubjectModel列表(大小写不敏感)

解决方案

直接通过List.where()方法结合大小写不敏感的字符串匹配实现过滤,补全后的完整代码如下:

List<SubjectModel> subjects;  // 数据源
TextEditingController searchController; // 搜索输入控制器

List<SubjectModel> searchSubjects() {
  List<SubjectModel> result;
  final searchText = searchController.text.trim().toLowerCase();
  if (searchText.isEmpty) {
    result = subjects;
  } else {
    // 过滤匹配chapter或lesson(大小写不敏感)的条目
    result = subjects.where((subject) {
      final chapterLower = subject.chapter?.toLowerCase() ?? '';
      final lessonLower = subject.lesson?.toLowerCase() ?? '';
      return chapterLower.contains(searchText) || lessonLower.contains(searchText);
    }).toList();
  }
  return result;
}

关键说明

  • 大小写不敏感处理:将搜索文本、chapter和lesson字段统一转换为小写后再匹配,彻底消除大小写差异带来的匹配问题
  • 空值安全防护:通过?.和?? ''处理字段可能为null的场景,避免运行时空指针异常
  • 灵活匹配逻辑:当前实现是只要chapter或lesson包含搜索文本就保留,如果需要强制同时匹配两个字段,只需把代码中的||替换为&&即可

内容的提问来源于stack exchange,提问作者Febin Johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:45:05