Prasan Kumar - 3 months ago 13

C# Question

Consider following linq example with blank array:

When

`Any()`

`false`

`All()`

`true`

`var arr = new int[] { };`

Console.WriteLine(arr.Any(n => n > 0)); //false

Console.WriteLine(arr.All(n => n > 0)); //true

Answer

Seems logical to me.

`All`

: Are*all*numbers in`arr`

are 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).