如何使用lambda从C#中的集合中获取最后一行+列

时间:2012-02-11 19:07:33

标签: c# linq

我有一个IEnumerable对象有3个字段。

字段ABResultNumber

如何使用lambda表达式仅从最后一行获取Resultnumber

我尝试了以下无效的方法:

resultnum = result.LastOrDefault(d => d.ResultNumber)

在这种情况下,我已经有结果存储在resultnum变量中。

2 个答案:

答案 0 :(得分:3)

您需要获取最后一行,然后 ResultNumber

var lastResultNumber = result.Last().ResultNumber;

或者如果没有行:

var lastOrDefault = result.LastOrDefault();
if (lastOrDefault != null)
{
    var lastResultNumber = lastOrDefault.ResultNumber;
}
else
{
    // Handle the case with no rows
}

Last()LastOrDefault()等的重载使代理人使用该委托进行过滤 - 所以这个:

var query = foo.Last(predicate);

大致相当于:

var query = foo.Where(predicate).Last();

这不是你在这种情况下想要实现的目标。

答案 1 :(得分:1)

你想要这样的东西:

if ( someCollection != null && someCollection.Count > 0 )
    result = somecollection.Last().ResultNumber