title: Can I build Tuples from IEnumerables using Linq?
body: <p>I've two <code>IEnumerable&lt;double&gt;</code>s, that I want to build an <code>IEnumerable</code> of <code>Tuple&lt;int, double, double&gt;</code> from. <code>Item1</code> of the <code>Tuple</code> should be the index of the item, <code>Item2</code> the value in index-th place in the first collection, and <code>Item3</code> the value in index-th place in the second collection. Is this something that can be done easily in Linq?</p>
  
  <p>E.g.</p>
  
  <pre><code>var first = new List&lt;double&gt;() { 10.0, 20.0, 30.0 };
  var second = new List&lt;double&gt;() { 1.0, 2.0, 3.0 };
  var result = TupleBuild(first, second);
  // result = {(0, 10.0, 1.0), (1, 20.0, 2.0), (2, 30.0, 3.0)}
  </code></pre>
  
  <p>where:</p>
  
  <pre><code>IEnumerable&lt;Tuple&lt;int, double, double&gt;&gt; TupleBuild(IEnumerable&lt;double&gt; first, IEnumerable&lt;double&gt; second)
  { 
       // does some funky Linq
  }
  </code></pre>
  
  <p>I realise I could write some longhand code for this, but I'd rather not reinvent the wheel if Linq has this covered.</p>