Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which is better when check a list is null : not null or use Any

Tags:

c#

list

Which is better when check list is null ?

var newList;

if(newList!= null)

or newList.Any()

In the above code, sometimes I check not null and sometimes I use Any(), I don't know which one is best practice and why ?

Any advice?

Thanks in advance

like image 520
Rai Vu Avatar asked Nov 30 '22 14:11

Rai Vu


1 Answers

These are not the same.

Any will throw an exception if used on a null reference.

With lists, you can think of .Any() as .Count() != 0 (*)

You may have to check for both, and you have to do the null check before calling Any() on your IEnumerable.

One way is to check them for both in one strike with the null-safe navigation ?.as in Thierry V's answer.

But sometimes you want to throw a custom Exception if you have a null value that you are not supposed to have, and treat an empty list as a correct input, so it all depends on the context.

Just remember that these are different.

(*) : as noticed in a comment, .Any() is not actually implemented as Count() == 0. For lists, it's functionally equivalent, but it's best practice to use Any() to test if an IEnumerable is empty or not, because Count() might need to go through all the elements.

like image 173
Pac0 Avatar answered Dec 10 '22 05:12

Pac0