0

DynamicNodeList 是否有任何属性或函数返回列表项的数量。

这是我的代码:

var root = Model.NodeById(id);
var nodes = root.Descendants("ChartItem");

if (nodes.GetLength() > 0)
{
   s = s + "<ul>";
}

但是GetLength不是一个有效的函数。我该怎么办?

4

3 回答 3

4

IEnumerable 类型有一个内置的扩展方法,称为 Count(),它就是这样做的,它计算项目数:)

请参见下面的代码:

var root = Model.NodeById(id);
var nodes = root.Descendants("ChartItem");

if (nodes.Count() > 0)
{
    s = s + "<ul>";
}
于 2012-06-05T08:32:18.743 回答
1

试试这个代码:

var root = Model.NodeById(id);
var nodes = root.Descendants("ChartItem");

int nodesCount = 0;
foreach (var node in nodes)
{
    nodesCount += 1;
}

if (nodesCount > 0)
{
    s = s + "<ul>";
}
于 2012-06-05T08:29:15.253 回答
1

看这里

http://umbraco.com/follow-us/blog-archive/2011/12/22/umbraco-5-rc1-is-out-today.aspx

我会尝试(不确定是否需要进行空检查,或者 Descendants() 是否至少返回一个空列表)

nodes != null && nodes.Count() >0

或者

nodes != null && nodes.Any()
于 2012-06-05T08:30:50.157 回答