【发布时间】:2013-02-15 07:59:31
【问题描述】:
你不写的理由是什么
list.Count.Equals(0)
你可能会写
list.Count == 0
有技术/语义上的原因吗?
【问题讨论】:
-
第二种情况更具可读性,不是吗?
-
这取决于
list实际上是什么(Equals可能与operator==有不同的覆盖,但这很愚蠢)。一般来说,list.Any()是检查空列表的首选方式。 -
@ArtemKoshelev:这取决于
list.Count实际上是什么。 -
正如daryal 的回答所示,这个问题可以很好地得到事实和专业知识的支持。因此,我投票支持重新开放它。
-
@ArtemKoshelev - 我同意,就性能而言,如果你只有一个
IEnumerable,!Any()显然是首选,如果你只有一个ICollection,则可能是首选,但是变量list建议他们至少有IList,在这种情况下,Count被认为很便宜,所以它成为一个品味问题。 “愚蠢”是一种极端的判断。 OTOH,您的评论确实让我考虑了为什么我仍然使用“Count == 0”;这实际上只是多年老派编程的一种习惯;不再合理。
标签: c#