当你创建一个扩展方法就可以了,当然,调用它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
是一致的。