check list 为 null 哪个更好?
var newList;
if(newList!= null)
or newList.Any()
在上面的代码中,有时我检查 not null 有时我使用 Any(),我不知道哪个是最佳实践,为什么?
有什么建议吗?
提前致谢
最佳答案
这些是不一样的。
如果在null
引用上使用 Any
将抛出异常。
对于列表,您可以将 .Any()
视为 .Count() != 0
(*)
您可能必须检查两者,并且必须在对 IEnumerable
调用 Any()
之前执行 null 检查。
一种方法是使用 null-safe 导航 ?
一次检查它们。 .
但有时如果你有一个你不应该有的空值,你想抛出一个自定义异常,并将一个空列表视为正确的输入,所以这一切都取决于上下文。
请记住它们是不同的。
(*) :如评论中所述,.Any()
实际上并未实现为 Count() == 0
。对于列表,它在功能上是等效的,但最好使用 Any()
来测试 IEnumerable
是否为空,因为 Count()
可能需要遍历所有元素。
关于c# - 检查列表为空 : not null or use Any 时哪个更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52661203/