【问题标题】:How to fill a list by another list that first list included 2th list in linq?如何用另一个列表填充列表,其中第一个列表包含 linq 中的第二个列表?
【发布时间】:2016-07-07 16:15:39
【问题描述】:

我有 2 个模型列表。

产品

public class Product
{
    public int Id { get; set; }    
    public Title { get; set; }
}

库存

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

我有一份填写的产品清单和一份库存清单。

List <Product> productList = _productService.GetProduct().ToList();

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

现在,我想使用 Linq 从 productList 中填充 stockList。

我该怎么做?

【问题讨论】:

  • stockList 应该是 List&lt;StockViewModel&gt; 吗?
  • @JimMischel ,好的,我编辑它。

标签: c# entity-framework linq list


【解决方案1】:

使用Select,您可以为productList 中的每个Product 创建一个新的StockViewModel,然后您可以调用AddRange 来添加它们

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

【讨论】:

  • 我猜这是由于问题中类的令人困惑的表示,但 stockList 是 List 而不是 List。问题要么有错字,要么他没有提供正确的信息让你有效地回答。无论如何,这至少会引导他朝着正确的方向前进。
  • 好地方,我会留在这里,直到问题得到更新,并确保在有足够信息后更新或删除它:)
  • @TomDoesCode 如果我有这个:public virtual Clientadmins ClientsAdmins{get;set;} 有货,我想填写类似的产品,我该怎么办?
【解决方案2】:

您可以像下面这样简单地创建 StockViewModel。

stockList = productList.Select(x => new StockViewModel { Product = x }).ToList() 

【讨论】:

  • ok 为我工作,现在我有另一个与此答案相关的问题。如果我有公共虚拟 Clientadmins ClientsAdmins{get;set;} 库存并且我想填写类似的产品,我该怎么办?
  • 在此示例中,StockViewModel 列表是根据产品列表计数创建的,如果您有单独的 ClientsAdmins ClientAdminsList 列表,并且如果您想为每个产品列表创建基于 ClientAdmins 的列表。您可以创建这样的列表... ClientAdminsList.Select(C => stockList.AddRange(productList.Select(x => new StockViewModel { Product = x, ClientsAdmins = C})))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 2020-10-04
  • 2012-04-01
  • 1970-01-01
  • 2017-04-06
  • 2019-12-21
相关资源
最近更新 更多