转换为点表示法

时间:2011-03-21 01:48:47

标签: c# linq

如何将此查询转换为使用扩展方法?

var x = from Prods n in Cat.Prod.GetAllProds()
        orderby n.Name
        select new
        {
            Name = n.Name,                        
            Cost = n.Cost
        };

2 个答案:

答案 0 :(得分:3)

它称为Lambda表示法。

var x = Cat.Prod.GetAllProds().OrderBy(n=>n.Name).Select(n=>new {n.Name,n.Cost});

请注意,如果该名称与列名称相同,则无需为要选择的每个列提供名称:

new
{
    Name = n.Name,                        
    Cost = n.Cost
});

完全相同:

new
{
    n.Name,                        
    n.Cost
});

答案 1 :(得分:2)

在这种情况下很简单:

var x = Cat.Prod
           .GetAllProds()
           .OrderBy(n => n.Name)
           .Select(n => new
                        {
                           Name = n.Name,                        
                           Cost = n.Cost
                        });

有关详细信息,建议您阅读 How query expressions work - Jon Skeet: Coding Blog