我想创建一个字典 Dictionary
,其中每个 Key
表示来自 List
的元素。这个字典必须包括每个列表元素。
例如:
一部电影有一组演员。
现在我想要一个演员参演的电影列表。如果电影有多个演员,则每个演员应该有自己的电影列表。
我的数据结构如下:
public class MovieData
{
public List<string> Actors { get; set;}
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string FilePath { get; set; }
}
一个小示例来说明这一点:
var movie1 = new MovieData {
Title = "Movie1",
Actors = new List<string> { "Bob Smith", "Alice Stevens"}};
var movie2 = new MovieData {
Title = "Movie2",
Actors = new List<string> { "Alice Stevens"}};
var movie3 = new MovieData {
Title = "Movie3",
Actors = new List<string> { "John Doe" }};
期望的结果应该是这样的:
Alice Stevens => { "Movie1", "Movie2" }
Bob Smith => { "Movie1" }
John Doe => { "Movie3" }
我想到了以下的代码,但它只关注列表中的第一个演员(FirstOrDefault()
)。因此,列表中的其他演员被忽略了。
var actorMovieList = movieDataList
.ToLookup(movie => movie
.Actors
.FirstOrDefault(), movie => movie);
我该如何将其他演员包含在列表中?我必须在lambda内部遍历演员列表,但我不知道该怎么做。