This snippet is not compiled in LINQPad.
void Main() { (new[]{0,1,2,3}).Where(IsNull).Dump(); } static bool IsNull(object arg) { return arg == null; } <
Because Int32 is value type and contra-variance doesn't work on value types.
Int32
You can try this one:
(new **object**[]{0,1,2,3}).Where(IsNull).Dump();