使用Lambda Expression从集合中选择多个值

问题描述 投票:1回答:1

如何使用单个lambda表达式从集合中选择两个或多个值到列表中?这是我正在尝试的:

List<Prodcut> pds=GetProducts();
List<Product> pdl = new List<Product>();
foreach (Product item in pds)
{
    pdl.Add(new Product
    {
        desc = item.Description,
        prodId = Convert.ToInt16(item.pId)
    });
}

GetProducts()返回具有许多(约21个)属性的Products列表。上面的代码完成了这项工作,但我试图通过使用单个lambda表达式提取两个产品属性(description和productId)来创建产品列表的子集。我该如何做到这一点?

c# .net lambda
1个回答
4
投票

您想要做的是投影,您想要投影每个项目并将其转换为其他项目。

所以你可以使用Select

var pdl = pds.Select(p => new Product 
                              { 
                                  desc = p.Description, 
                                  prodId = Convert.ToInt16(p.pId)
                              }).ToList();
© www.soinside.com 2019 - 2024. All rights reserved.