gpt4 book ai didi

VB.NET 如何提供最佳性能 "Select case"或 IF... ELSEIF ... ELSE... END IF

转载 作者:行者123 更新时间:2023-12-04 13:16:56 25 4
gpt4 key购买 nike

我有一个巨大的数据表,我需要遍历每一行并验证一个特定的值。

哪种方法给我更多的性能,IF ELSE 或 SELECT CASE 的结构?
(我专注于为我提供最佳性能的方法)

否则(方法 #1)

For Each vRow In vDTtemp.Rows
If vRow("Item") = "Time" Then
vRow("Result") = "000"
ElseIf vRow("Item") = "DateTime" Then
vRow("Result") = "001"
ElseIf vRow("Item") = "String" Then
vRow("Result") = "002"
Else
vRow("Result") = "N/A"
End If
Next

选择案例(方法#2)
For Each vRow In vDTtemp.Rows
Select Case vRow("Item")
Case "Time"
vRow("Result") = "000"
Case "DateTime"
vRow("Result") = "001"
Case "String"
vRow("Result") = "002"
Case Else
vRow("Result") = "N/A"
End Select
Next

最佳答案

好的......这篇文章很久以前,但现在我正在搜索相同的问题,我可以为此添加新的优化。现在我选择使用选择案例,以便更具可读性。另一方面,当“Dim”在 for-next 循环中时,性能会下降很多。

     For Each vRow In vDTtemp.Rows
-------> Dim rowItem = vRow("Item")
If rowItem = "Time" Then
vRow("Result") = "000"
ElseIf rowItem = "DateTime" Then
vRow("Result") = "001"
ElseIf rowItem = "String" Then
vRow("Result") = "002"
Else
vRow("Result") = "N/A"
End If
Next

即使您想使用 if-then 结构,当 dim 处于 oitside 时也会快得多:
------->     Dim rowItem as string
For Each vRow In vDTtemp.Rows
-------> rowitem= vRow("Item")
If rowItem = "Time" Then
vRow("Result") = "000"
ElseIf rowItem = "DateTime" Then
vRow("Result") = "001"
ElseIf rowItem = "String" Then
vRow("Result") = "002"
Else
vRow("Result") = "N/A"
End If
Next

我希望这对更多人有帮助;)

关于VB.NET 如何提供最佳性能 "Select case"或 IF... ELSEIF ... ELSE... END IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15144104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com