使用AddRange而不添加其他记录

时间:2016-07-07 17:54:30

标签: c# entity-framework linq list

我有一个模特。

库存

public  class Stock
{
    public virtual Product Product { get; set; }
    public virtual ClientAdmin ClientAdmins{get;set;}
}

我已经填写了ProductList和ClientAdminList .ProductList和ClientAdminList每个都有3条记录。

  var productList = _productService.GetProduct().ToList();

  var ClientadminsList= _productService.GetClientAdmins().ToList();

我使用AddRange语句填充库存清单。

List<Stock> StockList=new List<Stock>();

stockList.AddRange(productList.Select(x => new Stock { Product = x }));


stockList.AddRange(ClientadminsList.Select(x => new Stock { ClientAdmins= x }));

但是stockList有6条记录,我希望通过3条记录填充stockList,因为productlist和ClientadminsList各有3条记录。我该怎么办?

1 个答案:

答案 0 :(得分:1)

听起来你想用Enumerable.Zip

将两个序列压缩在一起
var StrockList = productList.Zip(
    ClientadminsList, 
    (p,c) => new Stock { Product = p, ClientAdmins = c }).ToList();

注意结果将是两个序列的较小长度。