[英]How to make the variable empty if the Jobject is empty in C#
当 Jobject 为空时,我得到一个 Null 引用异常。
var subjects = item.SelectToken("$.subjects").ToObject<List<JObject>>()
我想在 Jobject 为空时将 var 主题设置为空而不会引发错误。
谢谢
var subjects = item.SelectToken("$.subjects")?.ToObject<List<JObject>>() ?? new List<JObject>();
List 是一个集合,您需要定义 List 中的内容。 像List<string>
, List<object>
,或者,对于您的代码, List<JObject>
。
这意味着如果SelectToken
返回 null,它会在不执行.ToObject
的情况下停在那里,并返回null 。
这里的问题是SelectToken
将在找不到任何对象时返回 null ,而当您对null
执行.ToObject
时,您会得到NullException
。 因此,在进一步使用它的属性或函数之前,通常会检查一个对象是否为空。
问号 - Null-Conditional Operator ( 官方文档)是一种快速的语法糖来实现这一点,而无需编写类似的条件
if (... == null)
{ ...convert to list... }
else
{ ...make empty list...}
不知道你说的empty是什么意思,如果你不想要null ,但是一个空的List
, Null-coalescing Operator可能会来帮忙。
意思是 if 之前的语句??
为null ,返回??
之后的语句反而。
例如, string a = b ?? c
string a = b ?? c
表示:
string a = b != null ? b : c
但请注意,如果c
为null ,则a
仍然可以为null 。
它也是一种语法糖,可帮助您避免为这些经常需要的检查编写长语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.