You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么C#的List<T>.Count为有符号int?其值是否可能为负数?

结论

正常使用.NET标准库的List<T>时,Count属性永远不会返回小于0的值,你可以直接用myList.Count == 0判断空列表。

原因说明

  • 你贴的是简化版的List<T>定义,官方实际实现中Count的返回值来自内部维护的私有计数字段,所有对这个字段的修改逻辑(新增元素、删除元素、清空列表等)都做了严格的边界校验,取值范围只会在0到Int32.MaxValue之间,不可能出现负数。
  • 只有通过反射、unsafe代码等非常规手段强行修改内部私有字段的场景下,才有可能得到负数的Count值,这种属于故意破坏类封装的异常操作,正常业务开发中不需要考虑这种情况。
  • 另外.NET还提供了更语义化的扩展方法myList.Any()来判断序列是否包含元素,可读性比判断Count更高,你也可以根据编码习惯选用。

内容的提问来源于stack exchange,提问作者Hanley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:09:03