c# lambda取最大值
比如我有一个类 testLambdaMax
public class testLambdaMax
{
public int Id { get; set; }
public string Name { get; set; }
}
testLambdaMax[] lmax= new testLambdaMax[]{
new testLambdaMax(){Id=1,Name="A"},
new testLambdaMax(){Id=2,Name="B"},
new testLambdaMax(){Id=3,Name="C"},
new testLambdaMax(){Id=4,Name="D"}
};
该如何用lambda取id的最大值?谢谢
------解决方案--------------------lmax.Where(o => o.Name == "B").Select(o => o.Id).Max()
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
------解决方案--------------------testLambdaMax s = lmax.FirstOrDefault(x => x.Id == lmax.Max(y => y.Id) && x.Name == "B");
id已经是最大id,为4了。还来个并且name为B的?你看看你的数据中,id为4的name不是为d吗?当然为null了。
------解决方案--------------------这样写只要一步就可以了,速度应该最快。
lmax.OrderByDescending(t => t.Id * (t.Name == "B" ? 1 : 0)).First();