我有一个用户词典Dictionary<String, User> usersBase
每个用户都有一个评分列表List<UserRating> ratings
。每个评级都包含电影ID和评级的字符串。
class UserRating
{
private String movieId;
private int rating;
}
我正在尝试获取已评定特定ID的用户列表
List<User> commun = new List<User>();
commun = usersBase.Values.Where(x => x.Ratings.Where(y => y.MovieId == movieId)).ToList();
我有以下错误
无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'bool'
有人可以向我解释如何执行此操作以及为什么会出现此错误?
答案 0 :(得分:5)
.Where
期望一个返回bool的lambda。您的嵌套where子句将返回IEnumerable。
请改为尝试:
commun = usersBase.Values.Where(x => x.Ratings.Any(y => y.MovieId == movieId)).ToList();
答案 1 :(得分:2)