Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Lambda表达式从集合中选择多个值_C#_.net_Lambda - Fatal编程技术网

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

C# 使用Lambda表达式从集合中选择多个值,c#,.net,lambda,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 = Con

如何使用单个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)
    });
}
List pds=GetProducts();
List pdl=新列表();
foreach(pds中的产品项)
{
pdl.Add(新产品)
{
desc=项目描述,
prodId=Convert.ToInt16(item.pId)
});
}

GetProducts()返回具有许多(大约21个)属性的产品列表。上面的代码完成了这项工作,但我正试图通过使用单个lambda表达式提取两个产品属性(description和productId)来创建产品列表的子集。如何实现这一点?

你想做的就是投射,你想投射每一项,然后把它们变成其他东西

因此,您可以使用:


你想做的就是投射,你想投射每一个项目,然后把它们变成其他的东西

因此,您可以使用:


简单而完美!简单而完美!
var pdl = pds.Select(p => new Product 
                              { 
                                  desc = p.Description, 
                                  prodId = Convert.ToInt16(p.pId)
                              }).ToList();