title: Does this linq query run on every iteration of the for-each loop?
body: <p>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?</p>
  
  <p>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? </p>
  
  <pre><code>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:" &amp; i)    
  Next
  </code></pre>