我有这段代码:
foreach (var parent in @CurrentPage.AncestorsOrSelf().OrderBy("Level").Skip(2).Take(1))
{
...
}
@CurrentPage.AncestorsOrSelf().OrderBy("Level").Skip(2).Take(1)
总是返回一个结果,这是正确的。在这里,当结果只有一个时,没有意义使用foreach循环。
如何将@CurrentPage.AncestorsOrSelf().OrderBy("Level").Skip(2).Take(1)
的结果存储在变量中?
答案 0 :(得分:5)
您可以致电.First()
或.FirstOrDefault()
获取实际对象:
var value = @CurrentPage.AncestorsOrSelf().OrderBy("Level").Skip(2).First();
它们之间的区别在于First()
如果没有项目会抛出异常,而FirstOrDefault()
会返回default(T)
(即null
作为参考类型,例如0
等int
。)
由于您正在提取第一项,因此您不需要Take(1)
。