订购方式 - LINQ to Lambda

时间:2016-02-24 23:18:45

标签: linq lambda

您如何使用Lambda表达式表示此LINQ Order By语句?

OrderBy price.Quantity <= 50 ? price.Quantity : -price.Quantity

1 个答案:

答案 0 :(得分:2)

如果你的意思是Linq的Lambda语法方法,你可以这样做

var ordered = myQuery.OrderBy(p => p.Quantity <= 50? p.Quantity : -p.Quantity);

请注意,您可以表达复杂的条件,例如

var ordered = myQuery.OrderBy(p => 
    {
        if (somethingComplex)
        {
            return somethingCalculated;
        }
        else return somethingElseCalculated;
    });

如果对Linq-to-Entities执行OrderBy,则lambda需要可以转换为商店表达式。如果无法将其转换为商店表达式,则可以使用.AsEnumerable()来使OrderBy在客户端执行。