In another question on SO I answered with code like the one below and got a comment that the LINQ-query probably was evaluated in every iteration of the for/each. Is that true?
I know that LINQ-querys does not executes before its items is evaluated so it seems possible that this way to iterate the result can make it run on every iteration?
Dim d = New Dictionary(Of String, String)()
d.Add("Teststring", "Hello")
d.Add("1TestString1", "World")
d.Add("2TestString2", "Test")
For Each i As String In From e In d Where e.Value.StartsWith("W") Select e.Key
MsgBox("This key has a matching value:" & i)
Next