如何使用单个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)来创建产品列表的子集。我该如何做到这一点?
您想要做的是投影,您想要投影每个项目并将其转换为其他项目。
所以你可以使用Select
:
var pdl = pds.Select(p => new Product
{
desc = p.Description,
prodId = Convert.ToInt16(p.pId)
}).ToList();