我有所有 MovieDTO 对象的集合以及用户最喜欢的电影的 MovieDTO 集合。
我想在所有电影集合的每个对象中添加一个布尔标志 Selected =true,如果用户收藏中存在特定项目。
我希望用一些 lambda 表达式或一些 Func 或某种方式来完成它,而不是编写两个 for-each 循环。
public class Movie{
public string Name{get;set;}
public DateTime ReleaseDate{get;set;}
public string Director {get;set;}
public int Id{get;set;}
//more property
}
//This class is mainly used to highlight the favourite movie in UI
public class MovieDTO{
public string MovieName{get;set;}
public boolean Selected{get;set;}
public int Id{get;set;}
}
List<Movie> AllMovies = MyService.AllMovies();
List<MovieDTO> UserFavouriteMovie = MyService.GetUserMovies();
List<MovieDTO> allMovieDTO = AllMovies.Select(x => new MovieDTO
{
Name=x.Name,
//Selected=true/false => here i want
// to check if x is exist in UserFavouriteMovie collection
}).ToList();
有什么建议不在这里为每个循环使用两个吗?