我想知道是否有可能获得 List<IGrouping<string, IGrouping<string, T>>>
出于 Linq 表达式。我想做的是按流派和艺术家对歌曲进行排序,但采用一种我可以遍历每种流派和每种流派的格式,针对每张专辑进行迭代。如果可能的话怎么办?或者是否有更好的方法来实现我想要实现的目标?
这是我的歌曲类
public class Song
{
[StringLength(100)]
public string Album { get; set; }
public int Id { get; set; }
[StringLength(100)]
public string Title { get; set; }
[StringLength(100)]
public string Genre { get; set; }
[StringLength(255)]
public string Comment { get; set; }
[StringLength(4)]
public string Year { get; set; }
[StringLength(100)]
public string Author { get; set; }
public int Length { get; set; }
[StringLength(255)]
public string Photo { get; set; }
[StringLength(255)]
public string FileName { get; set; }
public string Extension { get; set; }
}
我在这里有这个查询
var songs = db.Songs.GroupBy(s => s.Genre).ToList();
给我一个List<IGrouping<string, Song>>
但我想要的是进一步按艺术家分组。
最佳答案
我想要的是 List<IGrouping<string, IGrouping<string, Song>>>
这段代码正是我想要的
var queryNestedGroups =
(from song in db.Songs
group song by song.Genre into newGroup1
from newGroup2 in
(from song in newGroup1
group song by song.Author)
group newGroup2 by newGroup1.Key).ToList();
(尽管我不太确定如何将其转换为 linq 方法语法)。
感谢所有评论和/或回答的人。
关于c# - 使用 LinQ 的嵌套 IGrouping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34747787/