我的数据看起来像这样:

UserId   |  SongId
--------   --------
1          1
1          4
1          12
2          95

我也有以下类(class):
class SongsForUser
{
    public int User;
    public List<int> Songs;
}

我想做的是使用LINQ从我的数据中选择以创建SongsForUser对象的集合。以下是我到目前为止提出的内容:
var userCombos = songs.UserSongs.Select(x => new SongsForUser() { User = x.UserId,
                                                                  Songs = /*What goes here?*/ });

我将如何填充Songs列表?

因此,结果应该是两个SongsForUser对象。对于用户1,在Songs列表中将包含3个项目。对于用户2,它在Songs列表中将有1个项目。

最佳答案

songs.UserSongs.GroupBy(x => x.User).Select(g => new SongsForUser()
{
    User = g.Key,
    Songs = g.Select(s => s.SongId).ToList()
});

关于c# - 如何使用LINQ选择对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11554414/

10-12 02:57