C# 获取列表中的下一项<;字符串>;基于当前项目
我有一个C# 获取列表中的下一项<;字符串>;基于当前项目,c#,string,list,indexing,C#,String,List,Indexing,我有一个列表,其中以字符串形式包含工资卷编号,例如: List<string> payrollnumbers = new List<string>() { "0","1","3" }; 您只需使用++currpayrollIndex而不是currpayrollIndex++: var nextPayrollIndex = ++currpayrollIndex; 您还可以完全删除该行,并在访问阵列时将其放入: var payrollnumber = payrollnu
列表
,其中以字符串形式包含工资卷编号,例如:
List<string> payrollnumbers = new List<string>() { "0","1","3" };
您只需使用
++currpayrollIndex
而不是currpayrollIndex++
:
var nextPayrollIndex = ++currpayrollIndex;
您还可以完全删除该行,并在访问阵列时将其放入:
var payrollnumber = payrollnumbers[++currpayrollIndex];
但是,它很难阅读,浏览代码的人可能不会注意到它您需要做的就是使用
++currpayrollIndex
而不是currpayrollIndex++
:
var nextPayrollIndex = ++currpayrollIndex;
您还可以完全删除该行,并在访问阵列时将其放入:
var payrollnumber = payrollnumbers[++currpayrollIndex];
但是,它非常不可读,浏览代码的人可能不会注意到它您必须更改:
var nextPayrollIndex = currpayrollIndex++;
到
您的解决方案currpayrollIndex
值在分配给nextParollinex
变量后是否增加1
当您将增加时间currpayrollIndex
更改为1时-您首先增加1currpayrollIndex
值,然后将分配给nextpyrollindex
变量
这是一个很好的解释:
此外,您可能希望将代码更改为:
var currpayrollIndex = payrollnumbers.IndexOf(currpayrollnumber);
var payrollnumber = payrollnumbers[++currpayrollIndex ];
它将更具可读性,您必须更改:
var nextPayrollIndex = currpayrollIndex++;
到
您的解决方案currpayrollIndex
值在分配给nextParollinex
变量后是否增加1
当您将增加时间currpayrollIndex
更改为1时-您首先增加1currpayrollIndex
值,然后将分配给nextpyrollindex
变量
这是一个很好的解释:
此外,您可能希望将代码更改为:
var currpayrollIndex = payrollnumbers.IndexOf(currpayrollnumber);
var payrollnumber = payrollnumbers[++currpayrollIndex ];
由于您使用的是后缀增量运算符(
i++
),因此它的可读性将更高。currpayrollIndex
递增之前,原始值是分配给nextParollIndex
的值。您可以使用前缀增量运算符(++i
),但我建议您要么明确表示要添加1,要么根本不使用增量currpayrollIndex
var nextPayrollIndex = currpayrollIndex + 1;
或者只需增加currpayrollIndex
并使用它而不是nextParollinex
currpayrollIndex++;
var payrollnumber = payrollnumbers[currpayrollIndex];
我还建议添加检查,以确定
currpayrollnumber
何时不在列表中(IndexOf
将返回-1)以及何时是最后一项(以避免ArgumentOutOfRangeException
),因为您使用的是后缀增量运算符(I++
)原始值是在currpayrollIndex
递增之前分配给nextParollinex
的值。您可以使用前缀增量运算符(++i
),但我建议您要么明确表示要添加1,要么根本不使用增量currpayrollIndex
var nextPayrollIndex = currpayrollIndex + 1;
或者只需增加currpayrollIndex
并使用它而不是nextParollinex
currpayrollIndex++;
var payrollnumber = payrollnumbers[currpayrollIndex];
我还建议添加检查,以确定
currpayrollnumber
何时不在列表中(IndexOf
将返回-1),以及它何时是最后一项(以避免ArgumentOutOfRangeException
)因此此代码不起作用?使用++currpayrollIndex代码>而不是索引++
btw正在使用LinkedList
选项吗?这会更有意义。您只需使用LinkedListNode.Next
属性即可。此外,存储当前索引似乎比存储当前值更安全,以防重复出现values@TimSchmelter.那么这个代码不起作用了吗?使用++currpayrollIndex代码>而不是索引++
btw正在使用LinkedList
选项吗?这会更有意义。您只需使用LinkedListNode.Next
属性即可。此外,存储当前索引似乎比存储当前值更安全,以防重复出现values@TimSchmelter .