.net命名约定:长度和计数之间是否存在语义差异?

k3b*_*k3b 3 .net

为了获得dotnet中的子项目的数量,有时我不得不问一个属性Lenght有时我要问一个属性Count.

这种区别有什么理由吗?

例:

   int[] a; if (a.Length == 0) ....
   IList<int> b; if (b.Count == 0) ....
Run Code Online (Sandbox Code Playgroud)

注意IEnumerable Count()和Length之间的区别听起来相似,但不回答Length和Count之间的语义

Han*_*ing 5

我不能引用一个源代码,但我认为.Length是一个固定值,而.Count可以改变.

创建数组后,您无法更改数组中的项目数,因此具有.Length.

可以添加(或删除)a List,以便具有.Count.

编辑
所以.Length:

  • 不会改变这个对象
  • 应该只涉及快速查找内部值

而a .Count.Count():

  • 可能会更改此对象
  • 可能涉及内部项目的迭代(取决于实现)