 <p>Linq was build with an functional style in mind. Using it the imperative way would not end up in elegant code. So don't transform after the query but in the query - put the logic in the projection section (select). (Much like Anthony's answer)</p> <pre><code>var str = (from i in Regex.Split("TheQuickBrownFox", "") select Regex.IsMatch(i, "[A-Z]") ? " " + i : i) .Aggregate((str1, str2) =&gt; str1 + str2); Console.WriteLine(str); </code></pre>