Skip to main content
 首页 » 编程设计

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

2024年02月04日34zlslch

如何使用单个 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)来创建产品列表的子集。我该如何实现?

请您参考如下方法:

你想做的事情叫做投影,你想投影每个项目并将它们变成其他东西。

所以你可以使用 Select :

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