C# Linq All & Any working differently on blank array

Seems logical to me.

  • All: Are all numbers in arr greater than zero (meaning there is no number not greater than zero) => true
  • Any: Is there any number in arr that is greater than zero => false

But more important, according to Boolean Algebra:

arr.All(n => n > 0); 

gives true, because it should be the logical opposite of

arr.Any(n => !(n > 0));

which gives false (actually this is what the above two points say).

Leave a Comment