Which is faster - if..else or Select..case? Which is faster - if..else or Select..case? database database

Which is faster - if..else or Select..case?


If you compile the two fragments and use reflector to disassemble you will see that they both end up as the practically the same IL. The compiler replaces the if / else with case statement.

This kind of micro optimization is highly unlikely to help you if you have performance problems.

If you have performance problems then you need to profile the program and find out where the bottlenecks are.

If you don't have performance problems, stop sweating this stuff and worry about writing code that is easily understood.


Theoretically, a switch..case should be faster, because it's a lookup table (as most often implemented by the compiler).

However, if you're worried about which of these runs faster, and it's really the bottleneck in your program, you have a phenomenally-well-behaved project.


A database operation will be at least 1,000 times slower than the if/else or case statement.

In general, case statements can execute faster, as the compiler or runtime can build a jump table. Usually, for less than five items, a compiler will write a case statement as a list of if/else statements. If the performance of the above was measurable, I would guess the performance would be identical, as likely the same instructions are being executed.

MSIL has a specific OpCode for switch statements. One would have to decompile to MSIL to see if VB.Net would create a jump table for three items.