c# - 空检查在哪里?
问题描述
我有以下内容:
var tagId = "5288";
source.Where(p => p.GetPropertyValue<IEnumerable<string>>("picker").Contains(tagId));
这将返回错误 System.ArgumentNullException: Value cannot be null.
所以一些返回的结果,不包含选择器值。在上述声明中,我将如何检查这一点?
它是一个 Umbraco 多节点树选择器,它是“选择器”值。
解决方案
如果我理解正确,结果GetPropertyValue
可能是找不到null
该值。picker
在这种情况下,您可以使用null 条件运算符:
source.Where(p => p.GetPropertyValue<IEnumerable<string>>("picker")?.Contains(tagId) == true);
注意?.
后面GetPropertyValue
。如果该方法返回,null
那么它不是true
,因此这些将不会包含在过滤的对象中。
推荐阅读
- php - mysql:加入另一个表并获取最新行
- javascript - 在赛普拉斯配置中存储正则表达式值
- laravel - 不将数据传递到刀片文件
- nestjs - 如何将配置服务值传递给 Nestjs 中的 TypeOrmModule 配置
- google-cloud-platform - 将 sonarqube 与 cloudbuild 集成
- vb.net - 使用 VB.net 监控远程 FTP 服务器
- asp.net - 如何为 ASP.NET 实现 GoJS 组织结构图编辑器?
- php - 以编程方式为每个租户(客户)创建自定义电子邮件收件箱
- apache-spark - Apache Spark 驱动程序、应用程序和计算资源
- python - ValueError: `x` 中的所有数组都应该具有相同的长度。找到一对: len(x[0]) = 97, len(x[?]) = 205