当你创建一个扩展方法就可以了,当然,调用它null。但是,不像一个实例方法调用,调用它在空不具有扔NullReferenceException- >您必须检查和手动把它。
为了实施Linq扩展方法,Any()Microsoft决定他们应该抛出一个ArgumentNullException(https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/AnyAll.cs)。
我不得不写信 if( myCollection != null && myCollection.Any() )
作为此代码的客户端,我期望eg ((int[])null).Any()应该返回false吗?
null |> Seq.isEmpty引发throws System.ArgumentNullException: Value cannot be null。期望似乎是您不会为预期存在的内容传递未定义的值,因此当您具有null时,这仍然是一个例外。如果是初始化问题,我将从一个空序列开始,而不是一个null。
                null在处理集合时您不应该返回而是在这种情况下使用空集合的原因。
                Any是一致的。