[英]Flutter - How to filter list to map expansiontile
有沒有辦法過濾這個 list.map 只顯示基於列表的結果(例如 subjectName 字段?= null)?
flutter: Courses{subjectId: 1, subjectName: Biology, courseName: BIOL 101, courseSection: B101-1,}
flutter: Courses{subjectId: 1, subjectName: null, courseName: null, courseSection: B101-2,}
flutter: Courses{subjectId: 1, subjectName: null, courseName: null, courseSection: B101-3,}
flutter: Courses{subjectId: 1, subjectName: null, courseName: BIOL 102, courseSection: B102-1,}
flutter: Courses{subjectId: 1, subjectName: null, courseName: null, courseSection: B102-2,}
flutter: Courses{subjectId: 1, subjectName: null, courseName: BIOL 103, courseSection: B103-1,}
flutter: Courses{subjectId: 1, subjectName: null, courseName: BIOL 104, courseSection: B104-1,}
flutter: Courses{subjectId: 2, subjectName: Chemistry, courseName: CHEM 101, courseSection: C101-1,}
flutter: Courses{subjectId: 2, subjectName: null, courseName: null, courseSection: C101-2,}
flutter: Courses{subjectId: 2, subjectName: null, courseName: CHEM 102, courseSection: C102-1,}
flutter: Courses{subjectId: 2, subjectName: null, courseName: null, courseSection: C102-2,}
flutter: Courses{subjectId: 2, subjectName: null, courseName: CHEM 201, courseSection: C201-1,}
flutter: Courses{subjectId: 2, subjectName: null, courseName: CHEM 202, courseSection: C202-1,}
上面的結果為列表中的每一行打印了一個 ExpansionTile,但我只想打印其中 subjectName.= null 的生物和化學。
我嘗試使用“where”進行過濾,但這只過濾了 expanionTile 而不是列表。
ExpansionTile(
maintainState: true,
title: Text("TOP LEVEL HEADER"),
children: allCoursesList.map<ExpansionTile>((Courses eachCourse) {
return ExpansionTile(
//key: PageStorageKey<Courses>(item),
title: Text("${eachCourse.subjectName}"));
}).where((item) => item != null).toList())
有什么建議么?
也許你可以試試這個
allCoursesList.where((item) => null != item.subjectName).toSet().toList().map(//...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.