如何在.NET中实现每50次迭代后递增scroll-counter列值
解决方案:实现scroll-counter每50次迭代递增逻辑
核心逻辑
scroll-counter的取值规则是:第1-50条记录为1,51-100条为2,101-150条为3,以此类推。可以通过整数除法实现这个计算:
- 利用已有的
counter变量(从1开始递增),公式为:(counter + 49) / 50- 当counter在1-50时,(counter+49)的范围是50-99,除以50整数结果为1
- 当counter在51-100时,(counter+49)的范围是100-149,除以50整数结果为2,以此类推
修改后的完整代码
sWriter_scroll.WriteLine("fix consumer-no scroll-counter paycounter no-of-total-paid due-date paid-date paid-amount paid-amount fix "); sWriter_scroll.WriteLine(""); sWriter_scroll.WriteLine("------------------------------------------------------------------"); int counter = 1; for (int r = 0; r < dtc.Rows.Count; r++) { try { // 计算scroll-counter的值 int scrollCounter = (counter + 49) / 50; sWriter_scroll.WriteLine( dtc.Rows[r]["fix"].ToString() + " " + dtc.Rows[r]["consno"].ToString() + " " + scrollCounter.ToString() + " " + // 替换原来的固定文本 applyleadingzero(counter.ToString(), 6) + " " + dtc.Rows.Count.ToString() + " " + dtc.Rows[r]["duedate"].ToString().Substring(0, 2) + "-" + dtc.Rows[r]["duedate"].ToString().Substring(2, 2) + "-" + dtc.Rows[r]["duedate"].ToString().Substring(4, 4) + " " + dtc.Rows[r]["paymentdate"].ToString().Substring(0, 2) + "-" + dtc.Rows[r]["paymentdate"].ToString().Substring(2, 2) + "-" + dtc.Rows[r]["paymentdate"].ToString().Substring(4, 4) + " " + applyleadingzero(dtc.Rows[r]["paidamount"].ToString(), 9) + " " + applyleadingzero(dtc.Rows[r]["paidamount"].ToString(), 9) + " " + dtc.Rows[r]["fix2"].ToString() + " " ); } catch (Exception ex) { // 建议添加异常日志,方便排查问题 // 例如:Console.WriteLine($"处理行{r}出错:{ex.Message}"); } rowCount++; counter++; }
关键修改说明
- 在循环内新增
int scrollCounter = (counter + 49) / 50;,完成scroll-counter的数值计算 - 将原代码中固定的
"scroll-counter"文本替换为计算出的scrollCounter.ToString() - 补充了异常处理的优化建议,避免吞掉异常导致问题难以定位
内容的提问来源于stack exchange,提问作者Abdul Wahab
相关产品推荐
相关产品推荐

