title: How do multi-parameter linq expression initialize their parameter?
body: <p>In this <a href="https://stackoverflow.com/questions/3102661/compare-two-list-elements-with-linq">post</a> the solution to the problem is:</p>
  
  <p><code>list.Where((item, index) =&gt; index &lt; list.Count - 1 &amp;&amp; list[index + 1] == item)</code></p>
  
  <p>The concept of multi-parameter (ie <code>(item, index)</code>) is a bit puzzling to me and I don't know the correct word to narrow down my google results. So 1) What is that called? And more importantly, 2) How are the non-enumerable variable initialize?  In this case how is <code>index</code> compiled as an int and initialized to 0?</p>
  
  <p>Thanks.</p>