我需要选择一种方法来编写一段会重复很多的代码,所以我希望它尽可能快。
这是我的代码(目前):
For Cel As Short = 0 To Cels - 1
Rw = Int(Cel / 3) + 1
Col = Cel - ((Rw - 1) * 3) + 1
RifTxt = TabW(RifTW("Pi")).Cells(Cel)
If Col = 1 Then
RowArr(Col) = RifTxt
Else
If DateTime.TryParse(RifTxt, culture, Styles, DateResult) Then
RowArr(Col) = DateResult.ToString("yyyy-MM-dd")
Else
RowArr(Col) = "0000-00-00"
End If
If Col = 3 Then
RowArr(3) = Rw
Pi_W.Rows.Add (RowArr)
End If
End If
Next Cel
我想改变它(使用 ElseIf 或 Select Case),如图所示:
使用 ElseIf
For Cel As Short = 0 To Cels - 1
Rw = Int(Cel / 3) + 1
Col = Cel - ((Rw - 1) * 3) + 1
RifTxt = TabW(RifTW("Pi")).Cells(Cel)
If Col = 1 Then
RowArr(Col) = RifTxt
ElseIf Col = 2
If DateTime.TryParse(RifTxt, culture, Styles, DateResult) Then
RowArr(Col) = DateResult.ToString("yyyy-MM-dd")
Else
RowArr(Col) = "0000-00-00"
End If
ElseIf Col = 3 Then
If DateTime.TryParse(RifTxt, culture, Styles, DateResult) Then
RowArr(Col) = DateResult.ToString("yyyy-MM-dd")
Else
RowArr(Col) = "0000-00-00"
End If
RowArr(3) = Rw
Pi_W.Rows.Add (RowArr)
End If
Next Cel
或使用选择案例:
For Cel As Short = 0 To Cels - 1
Rw = Int(Cel / 3) + 1
Col = Cel - ((Rw - 1) * 3) + 1
RifTxt = TabW(RifTW("Pi")).Cells(Cel)
Select Case Col
Case is = 1 Then
RowArr(Col) = RifTxt
Case is = 2
If DateTime.TryParse(RifTxt, culture, Styles, DateResult) Then
RowArr(Col) = DateResult.ToString("yyyy-MM-dd")
Else
RowArr(Col) = "0000-00-00"
End If
Case is = 3 Then
If DateTime.TryParse(RifTxt, culture, Styles, DateResult) Then
RowArr(Col) = DateResult.ToString("yyyy-MM-dd")
Else
RowArr(Col) = "0000-00-00"
End If
RowArr(3) = Rw
Pi_W.Rows.Add (RowArr)
End Select
Next Cel
我试图在 .netFiddle 上比较这三种方法,但我不确定结果。
你能建议我正确的选择吗?