C# foreach var x在。。。一个结果是ASP.NET MVC RAZOR
我有以下代码:C# foreach var x在。。。一个结果是ASP.NET MVC RAZOR,c#,asp.net-mvc,razor,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.antestorsorself().Ord
foreach (var parent in @CurrentPage.AncestorsOrSelf().OrderBy("Level").Skip(2).Take(1))
{
...
}
@CurrentPage.AncestorsOrSelf().OrderBy(“Level”).Skip(2.Take(1)
始终返回一个正确的结果。在这种情况下,当结果只有一个时,使用foreach循环是没有意义的
如何将@CurrentPage.antestorsorself().OrderBy(“Level”).Skip(2)中的结果存储在变量中?您可以调用.First()
或.FirstOrDefault()
来获取实际对象:
var value = @CurrentPage.AncestorsOrSelf().OrderBy("Level").Skip(2).First();
它们之间的区别在于,如果没有项,First()
将抛出异常,而FirstOrDefault()
将返回default(T)
(即,对于引用类型,null
,例如对于int
s等,0
)
由于您正在提取第一项,因此不需要Take(1)
您可以调用.first()
或.FirstOrDefault()
来获取实际对象:
var value = @CurrentPage.AncestorsOrSelf().OrderBy("Level").Skip(2).First();
它们之间的区别在于,如果没有项,First()
将抛出异常,而FirstOrDefault()
将返回default(T)
(即,对于引用类型,null
,例如对于int
s等,0
)
由于要提取第一项,因此不需要Take(1)
var parent=CurrentPage.antestorself()…跳过(2).FirstOrDefault()
Btw,我是一个umbraco命令。var parent=CurrentPage.antestorself()…跳过(2).FirstOrDefault()
Btw,我是该命令是一个umbraco命令。非常感谢,它工作了,我花了2个小时试图修复它。我是MVC新手。@RuslanDascal:如果它解决了你的问题,请点击这个答案计票下面的小复选标记。这有助于其他寻找同样东西的人知道这是解决方案:)非常感谢,它成功了,我花了2个小时试图修复它。我是MVC新手。@RuslanDascal:如果它解决了你的问题,请点击这个答案计票下面的小复选标记。这有助于其他寻找同样东西的人知道这就是解决方案:)