簡體   English   中英

Flutter - 如何過濾列表到 map 擴展塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM