VB.NET Comment donner de meilleures performances “Select case” ou if... ELSEIF ... ELSE... END if

J'ai un énorme DataTable, et j'ai besoin d'aller dans chaque ligne et de valider une valeur spécifique.

La méthode à me donner plus de performance, une structure de SI d'AUTRE ou SÉLECTIONNEZ CAS?
(Je suis concentré dans la méthode que m'offrent les meilleures performances)

SI D'AUTRE (MÉTHODE N ° 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

SÉLECTIONNEZ CAS (MÉTHODE N ° 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
Quels résultats avez-vous fait des tests? Aussi, (1) il peut être plus rapide pour faire référence à des colonnes de l'index au lieu du nom et (2) Select Case est soumise à des optimisations dans une version qui n'a pas fait dans une version de débogage.
Autant que je sache, Il s'mêmes. Dans les deux cas, il va se casser après la découverte d'une véritable condition. Mais Sélectionnez Cas est beaucoup plus agréable et plus propre façon, lorsque vous avez à écrire de nombreux cas, Si les phrases.
Oui, les performances devraient être similaires, mais Sélectionnez Cas est plus lisible.
mmmm, je crois que SI la Méthode #1 peut consommer plus de ressources. Par exemple, toutes les données a la valeur "String", ensuite, les besoins du cycle de considérer le Temps et la date / heure, prendra plus de temps. Dans la méthode n ° 2 de l'sélectionnez cas, allez directement à l'option.
Vous pouvez utiliser le Chronomètre et de voir par vous-même (je n'ai pas beaucoup de données afin de tester moi-même) comme indiqué dans le dreamincode.net/forums/topic/...

OriginalL'auteur MiBol | 2013-02-28