c# - 检查列表为空 : not null or use Any 时哪个更好

标签 c# list

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/

相关文章:

时间:2019-03-17 标签:c#EventlogFullorNot

c# - 如何为 ASP.NET Web 应用程序实现事件记录器?

python - 如何确定性地交错 N 个不同长度的异构列表?

python - 通过将两个长度不等的列表压缩在一起来创建字典

database - 如何将订单与产品匹配?

c# - 从验证方法中删除重复项

c# - .net core razor 页面中的多个 View 组件未正确绑定(bind)

c# - 为什么要为初始化器烦恼? (。网)

jQuery UI Accordion 替换无序列表的样式?

python - 关于Python中的各种正则表达式和列表长度的条件语句