C# 检查基于零的索引少于基于一的计数-通用编程

C# 检查基于零的索引少于基于一的计数-通用编程,c#,asp.net,.net,C#,Asp.net,.net,我有一个基于0的索引,它根据计数进行检查。计数通常从1开始 索引值需要小于或等于计数,因此我是否选择阻力最小的路线: if(x < _count) // Do Stuff 我正在考虑今后的代码维护。我强烈建议 if(x < _count) if(x

我有一个基于0的索引,它根据计数进行检查。计数通常从1开始

索引值需要小于或等于计数,因此我是否选择阻力最小的路线:

if(x < _count) // Do Stuff

我正在考虑今后的代码维护。

我强烈建议

if(x < _count)
if(x<\u计数)
实际上,它在语义上是正确的。有效的零基索引应严格小于
计数

计数通常从1开始


我想说的是,
count
通常以
0
开头,我强烈建议

if(x < _count)
if(x<\u计数)
实际上,它在语义上是正确的。有效的零基索引应严格小于
计数

计数通常从1开始


我想说,
count
通常从
0
开始。代码可维护性的基本原则是代码越简单越好。所以,我肯定会采用第一种方法


另外,要记住的另一件事是,除非你有很好的理由去做与其他人不同的事情,否则最好不要偏离。我从未见过有人做过类似于
if((x+1)的事情,代码可维护性的基本原则是代码越简单越好


另外,要记住的另一件事是,除非你有很好的理由去做与其他人不同的事情,否则最好不要偏离。我从未见过有人做过类似于
if((x+1)的事情显然是第一个。虽然你应该称它为
i
,而不是
x
,所以很明显它是一个索引。谢谢你,我的想法是,它是一个计数的索引。我知道的大多数程序员,如果遇到第二种形式,可能会认为你是有一个休息日并将其转换为第一种形式。基于0的索引的好处之一是它应该最终生成更简单的代码。计数不是从
1
开始的-您的集合中可能有
0
项。非常好的一点@RufusL-澄清一下,0计数意味着您没有,0索引意味着您有1,因此,我的语言运用能力很差;)但是我确实明白你的意思,我的0索引的计数给我1。显然是第一个。虽然你应该称它为
I
,而不是
x
,所以很明显它是一个索引。谢谢你,我的想法是,很明显它是一个针对计数的索引?我认识的大多数程序员,如果ey遇到了第二种形式,可能会决定您休息一天,并将其转换为第一种形式。基于0的索引的好处之一是它应该最终生成更简单的代码。计数不是从
1开始的-您的集合中可能有
0
项。非常好的一点@RufusL-澄清一下,虽然0表示你没有,0表示你有1,因此我的语言使用很差;)但我确实明白你的意思,我的0表示我有1。很好!更不用说第二种方法在条件中添加了一个操作,消耗了一个周期……哦,即使时钟周期值得担心,我也不会担心时钟周期,因为任何值得占用磁盘空间的编译器都会将两个语句优化为完全相同的指令序列。很好!更不用说第二种方法在条件中添加了一个操作,消耗了一个周期……哦,我不会担心时钟周期,即使时钟周期值得担心,因为任何值得占用磁盘空间的编译器都会将两个语句优化为完全相同的指令序列。