首页 > 解决方案 > 使用 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=GetProducts(); 

GetProducts() 从数据库中返回产品列表。Count 属性返回 ProductList 中的项目数。List<Product>我需要通过聚合 GetProducts() 返回的所有产品类型,将所有产品检索到单个类型列表中List<Products>

使用标准循环方法我实现了我的目标,但我确信通过使用 lambda 表达式有一种更短更简洁的方法。关于我如何能够做到这一点的任何想法?我难住了。

标签: c#.netlambda

解决方案


您正在寻找SelectMany展平列表的列表。

public List<Product> SelectManyExample(List<Products> products)
{
    return products.SelectMany(prds => prds.ProductList).ToList();
}

推荐阅读