首页 > 解决方案 > 空检查在哪里?

问题描述

我有以下内容:

var tagId = "5288";
source.Where(p => p.GetPropertyValue<IEnumerable<string>>("picker").Contains(tagId));

这将返回错误 System.ArgumentNullException: Value cannot be null.

所以一些返回的结果,不包含选择器值。在上述声明中,我将如何检查这一点?

它是一个 Umbraco 多节点树选择器,它是“选择器”值。

标签: c#umbraco

解决方案


如果我理解正确,结果GetPropertyValue可能是找不到null该值。picker在这种情况下,您可以使用null 条件运算符

source.Where(p => p.GetPropertyValue<IEnumerable<string>>("picker")?.Contains(tagId) == true);

注意?.后面GetPropertyValue。如果该方法返回,null那么它不是true,因此这些将不会包含在过滤的对象中。


推荐阅读