【问题标题】:Select Multiple Values from a Collection using Lambda Expression使用 Lambda 表达式从集合中选择多个值
【发布时间】:2018-09-03 08:59:59
【问题描述】:

如何使用单个 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 表达式仅提取两个产品属性(描述和 productId)来创建产品列表的子集。我该如何做到这一点?

【问题讨论】:

    标签: c# .net lambda


    【解决方案1】:

    你要做的叫做投影,你想把每一个项目都投影出来,然后把它们变成别的东西。

    所以你可以使用Select:

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

    【讨论】:

    • 简单而完美!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多