为for循环增加每个执行行的值 [英] Increment a value for every line of execution in for loop

查看:104
本文介绍了为for循环增加每个执行行的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello Experts,



我有一个要求,我应该为每行执行增加J的值。

这是我的代码,但我想要比这更好的东西

Hello Experts,

I have a requirement where I should increment the value of J for each line of execution.
Here is my code, But I want something better than this

For i As Int16 = 0 To ds.Tables(0).Rows.Count - 1

              ' For J = 33 To i
              pdfFormFields.SetField("untitled" + Convert.ToString(J), ds.Tables(0).Rows(i)("LIDOT").ToString())
              J += 1
              pdfFormFields.SetField("untitled" + Convert.ToString(J), ds.Tables(0).Rows(i)("LIPRODCO").ToString())
              J += 1
              pdfFormFields.SetField("untitled" + Convert.ToString(J), ds.Tables(0).Rows(i)("LITIRSIZ").ToString())
              J += 1
              pdfFormFields.SetField("untitled" + Convert.ToString(J), ds.Tables(0).Rows(i)("LITIRDPT").ToString())
              J += 1
              pdfFormFields.SetField("untitled" + Convert.ToString(J), "replace price1")
              J += 1
              pdfFormFields.SetField("untitled" + Convert.ToString(J), ds.Tables(0).Rows(i)("LIRR").ToString())
              J += 1



              If ds.Tables(0).Rows(i)("LIREMARE").ToString().ToUpper() = "BEAD" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")

              ElseIf ds.Tables(0).Rows(i)("LIREMARE").ToString().ToUpper() = "TREAD" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")

              ElseIf ds.Tables(0).Rows(i)("LIREMARE").ToString().ToUpper() = "SIDEWALK" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")

              ElseIf ds.Tables(0).Rows(i)("LIREMARE").ToString().ToUpper() = "OTHER" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
              ElseIf ds.Tables(0).Rows(i)("LIREMARE").ToString().ToUpper() = "TREADLIFE" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
              ElseIf ds.Tables(0).Rows(i)("LIREMARE").ToString().ToUpper() = "INTERIOR" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")

              End If
              J += 1

              If ds.Tables(0).Rows(i)("LITIRPOS").ToString().ToUpper() = "LEFT FRONT" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")

              ElseIf ds.Tables(0).Rows(i)("LITIRPOS").ToString().ToUpper() = "LEFT REAR" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
              ElseIf ds.Tables(0).Rows(i)("LITIRPOS").ToString().ToUpper() = "RIGHT FRONT" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
              ElseIf ds.Tables(0).Rows(i)("LITIRPOS").ToString().ToUpper() = "RIGHT REAR" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
              ElseIf ds.Tables(0).Rows(i)("LITIRPOS").ToString().ToUpper() = "TRAILER" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "Yes")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
              ElseIf ds.Tables(0).Rows(i)("LITIRPOS").ToString().ToUpper() = "OTHER" Then
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
                  J += 1
                  pdfFormFields.SetField("untitled" + Convert.ToString(J), "No")
              End If
              J += 1
              pdfFormFields.SetField("untitled" + Convert.ToString(J), ds.Tables(0).Rows(i)("LIAPPNBR").ToString())
              J += 1
              'Next
              K = J
          Next









而不是在每行代码中添加J + = 1,我想要一些不错的代码。这对你来说可能看起来很奇怪。但是要求就是这样,我必须通过为执行的每一行语句递增J来做到这一点。

有人可以帮帮我这个吗?



P.S:我对下来的选票并不感到困扰。我只想学习更好的编程方法





Instead of adding J+=1 at each line of code, I want something nice and less code. This may seem weird for you. But the requirement is like that, I have to do this way by incrementing J for every line of statement executed.
Could someone help me with this please?

P.S: I am not bothered about the down votes. I only want to learn better way of programming

推荐答案

你正在寻找相当于C#的 ++ 操作员。



不幸的是(当前)不是一个。



所以写一个自己辅助函数,例如
You are looking for the VB.net equivalent of C#'s ++ operator.

Unfortunately there (currently) isn't one.

So write yourself a helper function such as
Function Increment(ByRef value As Integer) As Integer
    Dim Tmp As Integer = value
    value += 1
    Return Tmp
End Function

我在这篇文章 [ ^ ] - 来自Maciej Pakulski的回复



使用它像

which I found at this post[^] - response from Maciej Pakulski

And use it like

pdfFormFields.SetField("untitled" + Convert.ToString(Increment(J)), ds.Tables(0).Rows(i)("LIDOT").ToString())



注意因为 Tmp从函数返回,它是 J 的原始值,传递给转换但是 J 仍在增加。



顺便说一句,我不是转换的粉丝 - 我更喜欢对象上的内置 ToString()方法。即


Note that because Tmp is being returned from the function it is the original value of J that is passed to the Convert but J is still incremented.

As an aside, I'm not a fan of Convert - I prefer the built-in ToString() method on the object. I.e.

pdfFormFields.SetField("untitled" + Increment(J).ToString(), ds.Tables(0).Rows(i)("LIDOT").ToString())







我再看看这个,你可能会更喜欢一个更像




I had another look at this and you would probably be better off with a function more like

Function DeriveFieldName(ByRef value As Integer) As String
    Dim Tmp As Integer = value
    value += 1
    Return "untitled" + Tmp.ToString()
End Function

然后你可以有更多更整洁的代码,例如

Then you can have much tidier code such as

pdfFormFields.SetField(DeriveFieldName(J), "Yes")


Put您的数据在静态字典中,只需循环遍历字典。



Put your data in a static dictionary, and simply loop through the dictionary.

Dictionary<string, string> BEADdata = new Dictionary<string, string> {
  {"untitled1", "Yes" },
  {"untitled2", "No" },
  {"untitled3", "No" }
};

Dictionary<string, string> TREADdata = new Dictionary<string, string> {
  {"untitled1", "No" },
  {"untitled2", "Yes" },
  {"untitled3", "No" }
}





Even better, store this data in a config file, so it can be maintained independently of the application.



Even better, store this data in a config file, so it can be maintained independently of the application.


这篇关于为for循环增加每个执行行的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆