2016-12-07 105 views
0

我試圖檢查爲IEnuemrable<SystemUser>爲null的類型。c#查看IEnumerable爲空

我使用這段代碼

  var systemUsers = newActActivityPersons.SelectMany(x => x.Person.SystemUsers); 
      if (systemUsers == null || !systemUsers.Any()) return ; 

這是行不通的。當我嘗試執行類似systemUsers.ToArray()systemUsers.ToList()的操作時,我得到一個空例外。我如何檢查這個錯誤?

+0

它不是'systemUsers',它是空的。調試器說什麼? –

+1

您的支票沒有問題。也許newActActivityPersons爲null。 –

+1

SelectMany不會返回null,因此無論如何check都是多餘的。如果'systemUsers.ToList()'拋出了一個NRE,之後它將被清空。發佈一個更大的區塊,顯示在這裏和發生異常的位置之間正在發生的事情。 –

回答

0

其中一個後續x.Person.SystemUsers可能爲空。 .Any()如果有的話返回true。如果之後嘗試ToList(),則可能會發現x誰的Person爲空。

檢查以確保x.Person在訪問對象的屬性之前不爲空。

+0

謝謝,這很有道理。它解決了這個問題。 –