C# 使用Lambda表达式从另一个列表中选择一个列表

C# 使用Lambda表达式从另一个列表中选择一个列表,c#,.net,lambda,C#,.net,Lambda,这是我的课 public class Product{ public decimal Price {get;set;} public string ProductName {get;set;} } public class Products{ public int Count{get;set;} public List<Product> ProductList {get;set;} } List<Products> products=G

这是我的课

public class Product{
    public decimal Price {get;set;}
    public string ProductName {get;set;}
}

public class Products{
    public int Count{get;set;}
    public List<Product> ProductList {get;set;}
}

List<Products> products=GetProducts(); 
公共类产品{
公共十进制价格{get;set;}
公共字符串ProductName{get;set;}
}
公共类产品{
公共整数计数{get;set;}
公共列表ProductList{get;set;}
}
List products=GetProducts();
GetProducts()返回数据库中的产品列表。Count属性返回ProductList中的项数。我需要通过聚合GetProducts()返回的所有产品,将所有产品检索到一个类型为
list
的列表中,GetProducts()类型为
list

通过使用标准循环方法,我实现了我的目标,但我确信通过使用lambda表达式,有一种更简短的方法可以做到这一点。有没有关于我可以怎么做的想法?我被难住了。

您正在寻找一个列表的扁平化列表

public List<Product> SelectManyExample(List<Products> products)
{
    return products.SelectMany(prds => prds.ProductList).ToList();
}
public List selectmanyes示例(列出产品)
{
return products.SelectMany(prds=>prds.ProductList.ToList();
}
您正在寻找的方法是将列表展平

public List<Product> SelectManyExample(List<Products> products)
{
    return products.SelectMany(prds => prds.ProductList).ToList();
}
public List selectmanyes示例(列出产品)
{
return products.SelectMany(prds=>prds.ProductList.ToList();
}

工作起来很有魅力。我试着用Select。这就是为什么我不能让它工作的原因。工作得很有魅力。我试着用Select。这就是为什么我不能让它工作。