2016-12-07 1 views
0

J'essaie de vérifier un type de IEnuemrable<SystemUser> pour null.C# cochez IEnumerable pour null

J'utilise ce morceau de code

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

qui ne fonctionne pas. Quand j'essaye de faire quelque chose comme systemUsers.ToArray() ou systemUsers.ToList() j'obtiens une exception nulle. Comment puis-je vérifier cela pour des erreurs?

+0

ce n'est pas 'systemUsers' qui est null. que dit le débogueur? –

+1

Votre vérification n'a aucun problème. Peut-être que newActActivityPersons est null. –

+1

SelectMany ne retourne pas null de sorte que la vérification est de toute façon redondante. Si 'systemUsers.ToList()' lance un NRE, il est annulé par la suite. Postez un plus gros morceau qui montre ce qui se passe entre ici et où vous obtenez l'exception. –

Répondre

0

L'un des x.Person.SystemUsers suivants pourrait être null. .Any() renvoie true s'il y en a un. Si vous essayez ensuite de ToList() par la suite, vous pourriez trouver un x qui est Person est nul.

Assurez-vous que x.Person n'est pas null avant d'accéder à une propriété sur l'objet.

+0

Merci, cela a du sens . Cela a réglé le problème. –