[英]Add existing object to list
我有一个Order
类,其中包含一个List<Album>
属性。 在初始化时,我有一个Albums
列表:
var albums = new List<Album>
{
new Album { ArtistId = 2, GenreId = 2, Price = 9.99m, Title = "Mine is Yours" },
new Album { ArtistId = 2, GenreId = 2, Price = 9.99m, Title = "Robbers & Cowards" },
new Album { ArtistId = 2, GenreId = 2, Price = 9.99m, Title = "Hold My Home" }
};
接下来,我有一个Orders
列表:
var orders = new List<Orders>
{
new Orders { Albums = //code}
};
我想要做的是能够将albums
列表中的Albums
添加到“ Albums
属性中。 本质上,我不想写Albums = {new Album{//code},{//more code}}
。 我想写类似Albums = {{AlbumId = 1}, {AlbumId = 2}}
。 等将现有相册添加到列表中。
如果措辞不佳,则表示歉意。
您可以使用LINQ轻松解决此问题:
var orders = new List<Orders>
{
new Orders { Albums = albums.Where(x => x.AlbumId == 2 || x.AlbumId == 1).ToList() }
};
如果您预先知道自己的ID(例如在另一个集合中),则可以执行以下操作:
var albumIds = new [] { 1, 2, 4 };
var orders = new List<Orders>
{
new Orders { Albums = albums.Where(x => albumIds.Contains(x.AlbumId)).ToList() }
};
如果您在Album类中具有Id属性,则可以从创建的初始列表中创建字典:
var albumsDict = albums.ToDictionary(a => a.Id);
然后,您可以像这样创建订单清单:
var orders = new List<Orders>
{
new Orders { Albums = new List<Album>() { albumsDict[1], albumsDict[2], albumsDict[someId] }
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.