foreach var x in ...使用一个结果ASP.NET MVC RAZOR

时间:2016-07-13 10:06:53

标签: c# asp.net-mvc razor

我有这段代码:

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)的结果存储在变量中?

1 个答案:

答案 0 :(得分:5)

您可以致电.First().FirstOrDefault()获取实际对象:

var value = @CurrentPage.AncestorsOrSelf().OrderBy("Level").Skip(2).First();

它们之间的区别在于First()如果没有项目会抛出异常,而FirstOrDefault()会返回default(T)(即null作为参考类型,例如0int。)

由于您正在提取第一项,因此您不需要Take(1)