title: Extension method for Enumerable.Intersperse?
body: <p>I learned the <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Data-List.html#v:intersperse" rel="noreferrer">intersperse function</a> from Haskell, and have been looking for an implementation in c#.</p>
  
  <p>Intersperse takes 2 arguments, an IEnumerable&lt;T&gt; source and a T element.  It returns an IEnumerable with element inserted between every element of source.</p>
  
  <p>One possible use-case is to put an arbitrary integer in between a list of integers, for example:</p>
  
  <pre><code>// returns: {1, 0, 2, 0, 3}
  (List&lt;int&gt;() {1, 2, 3}).Intersperse(0);
  </code></pre>
  
  <p>This is a general case of string.Join(...).</p>