[英]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.