我有三个对象:
Artist, Albums and Track.
艺术家存储在 List<Artist>
中在 Artist 对象中还有另一个艺术家专辑列表 (List<Albums>
) 在 Album 对象中还有另一个轨道列表 (List<Track>
)
您将如何一次选择所有轨道?
有什么办法可以做到:
TrackList.AddRange(ArtistList.Albums.Tracks);
到目前为止,我一直在这样做:
foreach (Artist artist in artistlist)
{
if (artist.Albums != null)
{
ForEach(Album album in artist.Albums)
{
Context.AddRange(album.Tracks);
}
}
}
最佳答案
你可以试试
TrackList.AddRange(
ArtistList.SelectMany(a => a.Albums)
.SelectMany(a => a.Tracks))
或者类似的东西。我对 SelectMany
有点生疏,但我相信它可以在这里使用。
我也是
不确定这里是否也需要您的 null
检查。但是您可以在 SelectMany
之前添加一个 Where
子句。
关于c# - 选择列表中的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481879/