如何使用单个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)来创建产品列表的子集。我该怎么做?
答案 0 :(得分:4)
您想要做的就是投影,您想要投影每个项目并将它们变成其他东西。
因此您可以使用Select
:
var pdl = pds.Select(p => new Product
{
desc = p.Description,
prodId = Convert.ToInt16(p.pId)
}).ToList();