gpt4 book ai didi

dart - 过滤器列表对象包含值

转载 作者:行者123 更新时间:2023-12-03 04:37:24 25 4
gpt4 key购买 nike

class Lesson {
int idLesson;
String nameLesson;
List<DayLesson> dayLesson;
Lesson({this.idLesson, this.dayLesson, this.nameLesson});
}

class DayLesson {
int idDay;
String nameDay;
DayLesson({this.idDay, this.nameDay});
}

List<DayLesson> listDay = [
DayLesson(idDay: 1, nameDay: 'Monday'),
DayLesson(idDay: 2, nameDay: 'Tuesday'),
DayLesson(idDay: 3, nameDay: 'Wednesday'),
DayLesson(idDay: 4, nameDay: 'Thursday'),
DayLesson(idDay: 5, nameDay: 'Friday'),
DayLesson(idDay: 6, nameDay: 'Saturday'),
DayLesson(idDay: 7, nameDay: 'Sunday'),
];

List<Lesson> listLesson = [
Lesson(
idLesson: 1,
nameLesson: 'Matematic',
dayLesson: [
DayLesson(idDay: 1, nameDay: 'Monday'),
DayLesson(idDay: 5, nameDay: 'Friday'),
],
),
Lesson(
idLesson: 2,
nameLesson: 'Indonesia Language',
dayLesson: [
DayLesson(idDay: 2, nameDay: 'Tuesday'),
DayLesson(idDay: 4, nameDay: 'Thursday'),
],
),
Lesson(
idLesson: 3,
nameLesson: 'Chemistry',
dayLesson: [
DayLesson(idDay: 3, nameDay: 'Wednesday'),
],
),
Lesson(
idLesson: 4,
nameLesson: 'Physics',
dayLesson: [
DayLesson(idDay: 4, nameDay: 'Thursday'),
DayLesson(idDay: 5, nameDay: 'Friday'),
],
),
Lesson(
idLesson: 5,
nameLesson: 'Basic Invesment',
dayLesson: [
DayLesson(idDay: 1, nameDay: 'Monday'),
],
),
];

在上面的代码中,我有两个名为 LessonDayLesson的类。我想搜索 List<Lesson>,其中该列表包含ID为X的日期。类似 listLesson.where((element)=>element.dayLesson.contain(1)).toList()

我对以上示例的期望将返回2个数据,因为listDay中的ID的值为1:
[
Lesson(
idLesson: 1,
nameLesson: 'Matematic',
dayLesson: [
DayLesson(idDay: 1, nameDay: 'Monday'),
DayLesson(idDay: 5, nameDay: 'Friday'),
],
),
Lesson(
idLesson: 5,
nameLesson: 'Basic Invesment',
dayLesson: [
DayLesson(idDay: 1, nameDay: 'Monday'),
],
),
]
但是问题是,我总是得到空名单。我的结构 List是问题还是我错过了什么?

最佳答案

我不认为contains是正确的方法。由于列表中嵌套了一个列表,因此必须嵌套whereany操作。

List<Lesson> _findLessons(int dayLessonId) {
return listLesson
.where((element)=> element.dayLesson.any((dL) => dL.idDay == dayLessonId))
.toList();
}

关于dart - 过滤器列表对象包含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63869928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com