title: In LINQ, can I select multiple items?
body: <p>Say I have an array of <code>string</code>s like this:</p>
  
  <pre><code>string [] foos = {
      "abc",
      "def",
      "ghi"
  };
  </code></pre>
  
  <p>I want a new collection that contains each string and its reverse. So the result should be:</p>
  
  <pre><code>    "abc",
      "cba",
      "def",
      "fed",
      "ghi",
      "ihg"
  </code></pre>
  
  <p>I could just iterate through the array, but this is pretty clumsy:</p>
  
  <pre><code>string Reverse (string str)
  {
      return new string (str.Reverse ().ToArray ());
  }
  
  List&lt;string&gt; results = new List&lt;string&gt; ();
  foreach (string foo in foos) {
      results.Add (foo);
      results.Add (Reverse(str));
  }
  </code></pre>
  
  <p>Is there a way to do this in LINQ? Something like</p>
  
  <pre><code>var results = from foo in foos
      select foo /* and also */ select Reverse(foo)
  </code></pre>