我有一个IEnumerable
对象有3个字段。
字段A
,B
和ResultNumber
。
如何使用lambda表达式仅从最后一行获取Resultnumber
?
我尝试了以下无效的方法:
resultnum = result.LastOrDefault(d => d.ResultNumber)
在这种情况下,我已经有结果存储在resultnum变量中。
答案 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