使用Lambda表达式从集合中选择多个值

时间:2018-09-03 00:57:34

标签: c# .net lambda

如何使用单个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个)属性的产品列表。上面的代码可以完成工作,但是我试图通过使用一个lambda表达式仅提取两个产品属性(description和productId)来创建产品列表的子集。我该怎么做?

1 个答案:

答案 0 :(得分:4)

您想要做的就是投影,您想要投影每个项目并将它们变成其他东西。

因此您可以使用Select

var pdl = pds.Select(p => new Product 
                              { 
                                  desc = p.Description, 
                                  prodId = Convert.ToInt16(p.pId)
                              }).ToList();