1

我在 C# 中有一个 Umbraco 节点列表。我可以使用节点类中内置的一些顶级属性(例如 node.Name)成功订购这些属性,但是当我尝试使用 GetProperty() 函数获取一些动态属性时,我得到了 NullReferenceException。

代码:

nodes = nodes.OrderBy(n => n.GetProperty("fromPrice").ToString()).ToList();

替换n.GetProperty("fromPrice").ToString()n.Name作品,但我不想按此排序。

异常消息:

System.NullReferenceException: Object reference not set to an instance of an object.

不完全确定这意味着什么。任何帮助表示赞赏。

谢谢!

4

1 回答 1

1

我认为您可以从查询中的 Where 子句中受益,例如(根据我的记忆编写,未经测试)

var nodes = nodes.Where(x => x.GetProperty("fromPrice") != null).OrderBy(n => n.GetProperty("fromPrice").Value);

这应该首先过滤掉没有调用属性的节点,"fromPrice"然后执行排序。使用该Node对象时,我认为您不必调用ToString(),只需获取该对象即可Value

让我知道这是如何工作的:-)

于 2013-02-21T15:04:15.770 回答