我正在尝试从Courses
列表项中获取courseData
列表。
但是,以下内容会返回boolean
。
var course = courseData.Courses.Select(x => x.Entities.Select(a => a.courseId == courseDto.Id)).FirstOrDefault();
答案 0 :(得分:1)
目前,course
的类型为IEnumerable<bool>
,因为在您的内部 Select
子句中,您正在从某种类型a
投射并返回{ {1}}(a.courseId == courseDto.Id
)在为bool
的每个元素执行提供的lambda之后产生IEnumerable<bool>
。
执行外部 x.Entities
子句后,这会产生Select
类型,然后当您调用IEnumerable<IEnumerable<bool>>
时;只会导致检索第一个FirstOrDefault()
元素。
现在,您最有可能寻找IEnumerable<bool>
子句,以便保留传递谓词Where
的所有元素。然后,我们将a => a.courseId == courseDto.Id
展平为IEnumerable<IEnumerable<Entity>>
,然后收集到列表或检索第一个元素(如果存在),否则为引用类型的默认值(IEnumerable<Entity>
)。
检索课程列表。
null
从课程列表中检索第一项。
var course =
courseData.Courses
.SelectMany(x => x.Entities.Where(a => a.courseId == courseDto.Id))
.ToList();
答案 1 :(得分:0)
var Result = Course_Object.Where(u => u.Id == 1).FirstOrDefault();