[英]To check if IEnumerable is not null before checking for Any() in c#
我遇到的情況是,在檢查 Any()(是否包含任何元素)之前,我得到一條語句來檢查集合是否實際上是 null。
if(myIEnumerableCollection?.Any() ?? false)
{
// do this logic
}
我知道 myIEnumerableCollection 已被檢查,如果它為 null(c# 6 語法,如果我錯了請糾正我),則拋出參數 null 異常。 我想了解此語句的評估內容,因為語法讀起來有點混亂。
我的理解是:
檢查集合是否不是 null,應該是假的。
如果第一個條件不為真(myIEnumerableCollection?不為空),則為序列中的任何元素與 Any() 鏈接。
如果表達式 myIEnumerableCollection?.Any() 為真(這是我感到困惑的地方,它如何評估為真) go 在 if 邏輯中,否則評估為假。
任何鏈接或參考或解釋都會有所幫助。 我有點生疏了,這看起來像是一個非常基本的問題,我擔心的是表達式的可讀性。
謝謝你。
的?.
或null 條件運算符語法跳過表達式的 rest 的計算,如果左側值為 null,則計算 null。所以myIEnumerableCollection?.Any()
會給出bool?
即 null,true 或 false。 ?? false
?? false
或null 合並運算符,將 null-case 轉換為 false。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.