Can't replicate here - on the first pass though the loop all three Exists watch values are false.
What other watches do you have set though? It's possible another watch is altering the Exists
result: you need to be careful with the watch window when using a Dictionary object.
E.g. see:
Dictionary is populated with an empty item after checking dictionary item in watch window
EDIT: as suspected, after adding a watch on
dColLenFreqs.Item(lColLen)
the watch on
dColLenFreqs.Exists(lColLen)
now outputs True.
If you delete all your watches and just look at the Debug output you'll also see it's as expected.