title: LINQ to Objects auto increment number
body: <p>This feels like a completely basic question, but, for the life of me, I can't seem to work out an elegant solution.</p>
  
  <p>Basically, I am doing a LINQ query creating a new object from the query.  In the new object, I want to generate a auto-incremented number to allow me to keep a selection order for later use (named <code>Iter</code> in my example).</p>
  
  <p>Here is my current solution that does what I need:</p>
  
  <pre><code>    Dim query2 = From x As DictionaryEntry In MasterCalendarInstance _
                   Order By x.Key _
                   Select New With {.CalendarId = x.Key, .Iter = 0}
  
      For i = 0 To query2.Count - 1
          query2(i).Iter = i
      Next
  </code></pre>
  
  <p>Is there a way to do this within the context of the LINQ query (so that I don't have to loop the collection after the query)?</p>