获取数组

时间:2017-10-24 12:15:37

标签: c# arrays umbraco children

我最近开始与Umbraco合作,我正试图从阵列中获取最后一个孩子。这是我到目前为止所做的:

@inherits Umbraco.Web.Macros.PartialViewMacroPage

@{var page = Umbraco.Content(1127).Children[Children.Length - 1]}

<h5><a href='@page.Url'>@page.NewsTitle</a></h5>
<p>@page.NewsIntro</p>
<p class='read-more'><a href='@page.Url'>Read more...</a></p>

编辑:

解决方案如下:

@inherits Umbraco.Web.Macros.PartialViewMacroPage

@{
    var length = Umbraco.Content(1127).Children.Count();
    var page = Umbraco.Content(1127).Children[length - 1];
}

<h5><a href='@page.Url'>@page.NewsTitle</a></h5>
<p>@page.NewsIntro</p>
<p class='read-more'><a href='@page.Url'>Read more...</a></p>

3 个答案:

答案 0 :(得分:4)

尝试:@{var page = Umbraco.Content(1127).Children[Children.Length - 1]}

请注意L中的大写Length。 c#是区分大小写,没有名为length的数组属性。

答案 1 :(得分:3)

如果您能够在C#代码中使用Linq,我会在那里看到,它有一个&#34; Last()&#34;你可以使用的扩展方法。

像这样:

        @using System.Linq
        @{var page = Umbraco.Content(1127).Children.Last()}

答案 2 :(得分:0)

Umbraco有很多&#34; isHelpers&#34;包括IsLast()。这是一个使用isLast的例子。

foreach(var page in Umbraco.Content(1127).Children)
{
    if(page.IsLast())
    {
        <h5><a href='@page.Url'>@page.NewsTitle</a></h5>
        <p>@page.NewsIntro</p>
        <p class='read-more'><a href='@page.Url'>Read more...</a></p>
    }
}

以下是Umbraco揭露的其他一些问题。

  

IsHelper方法.IsFirst([string valueIfTrue] [,string valueIfFalse])   测试当前节点是否是集合中的第一个项目

     

.IsNotFirst([string valueIfTrue] [,string valueIfFalse])测试是否   当前节点不是集合中的第一个项目

     

.IsLast([string valueIfTrue] [,string valueIfFalse])测试当前是否   node是集合中的最后一项

     

.IsNotLast([string valueIfTrue] [,string valueIfFalse])测试当前是否   节点不是集合中的最后一项

     

.IsPosition(int index [,string valueIfTrue] [,string valueIfFalse])测试   如果当前节点位于集合中的指定索引

     

.IsNotPosition(int index [,string valueIfTrue] [,string valueIfFalse])   测试当前节点是否不在集合中的指定索引

     

.IsModZero([string valueIfTrue] [,string valueIfFalse])测试当前是否   节点位置均匀分割(模数)给定数量

     

.IsNotModZero([string valueIfTrue] [,string valueIfFalse])测试是否   当前节点位置不能被给定的均匀分割(模数)   编号

     

.IsEven([string valueIfTrue] [,string valueIfFalse])测试当前是否   节点位置是偶数

     

.IsOdd([string valueIfTrue] [,string valueIfFalse])测试当前是否   节点位置是奇数

     

.IsEqual(IPublishedContent otherNode [,string valueIfTrue] [,string   valueIfFalse])测试迭代中的当前节点是否为   等效(通过Id)到另一个节点

     

.IsDescendant(IPublishedContent otherNode [,string valueIfTrue] [,string   valueIfFalse])测试迭代中的当前节点是否为   另一个节点的后代

     

.IsDescendantOrSelf(IPublishedContent otherNode [,string   valueIfTrue] [,string valueIfFalse])测试你的当前节点   iteration是另一个节点的后代,或者是节点

     

.IsAncestor(IPublishedContent otherNode [,string valueIfTrue] [,string   valueIfFalse])测试迭代中的当前节点是否为   另一个节点的祖先

     

.IsAncestorOrSelf(IPublishedContent otherNode [,string   valueIfTrue] [,string valueIfFalse])测试你的当前节点   iteration是另一个节点的祖先,或者是节点