I know that the .Contains method on a hashset is fast. My question is what is the best method for getting the hashset data before repetitively using the .Contains method?
I can think of 2 options. Both of these examples would be called in a loop of undetermined length.
1) Call the method that returns the cached hashset directly and use the .Contains method.
IF (GetHashSetMethod.Contains("TESTVALUE") THEN BLAH, BLAH, BLAH...
2) Create a new hashset outside of the loop and load the cached hashset data into it so the method that returns the hashset is only called once, then use the .Contains method.
DIM HashTest AS HASHSET(OF String) = GetHashSetMethod
Then in loop:
if (HashTest.Contains("TESTVALUE") THEN BLAH, BLAH, BLAH...
I have been using method 1. Should I even think about switching to method 2? Is there a 3rd option I haven’t even thought of? Does it even matter because the data is cached to begin with?
In matters of speed, the answer is generally to write it both ways and see if you can actually measure a difference that is meaningful.
For code clarity, I would suggest you opt for solution 2. It’s going to code that will be easier to understand, maintain, and debug if all goes to pot.