我对Linq技能感到耳目一新,但遇到了一个障碍--第二组没有做我认为应该做的事情。一对一对的分组。键似乎根本不分组,只是整理。它重新排序艺术家,使所有具有相同流派的艺术家按顺序出现,但不对他们进行分组。
// Create a list of pairs of GenreName and ArtistName
var genres_and_artist =
from artist in db.Artists
join track in db.Tracks on artist.ArtistId equals track.ArtistId
join genre in db.Genres on track.GenreId equals genre.GenreId
group artist by new { genre.GenreId, artist.ArtistName };
// Count up the number of artists in each genre
var genres_by_artist =
from pair in genres_and_artist
group pair by pair.Key;
实际:
- Key { GenreId = 1,ArtistName =“4 Non Blondes”}
- 组计数= 1
- 关键字{ GenreId = 1,ArtistName =“亚当和蚂蚁”}
- 组计数= 1
预期:
- 关键字{ GenreId = 1,{ ArtistName =“4 Non Blondes”,ArtistName =“Adam and The Ants”} }
- 组计数= 2
1条答案
按热度按时间nbnkbykc1#
如果我没理解错的话,你是在找一份不同流派的艺术家名单。当你把艺术家的名字按
GenreId
分组时,你已经接近了:这会产生这样的组,其中艺术家乘以他们在流派中拥有的歌曲数量(事实上,它是按
GenreId
分组的歌曲,但只显示歌曲的艺术家名称),所以剩下的就是让名称不同,或者通过......或者...