<p>I tried the following code in LINQPad and got the results given below:</p>

<pre><code>List&lt;string&gt; listFromSplit = new List&lt;string&gt;("a, b".Split(",".ToCharArray())).Dump();
listFromSplit.ForEach(delegate(string s) 
{ 
  s.Trim(); 
});
listFromSplit.Dump();
</code></pre>

<blockquote>
  <p>"a" and " b"</p>
</blockquote>

<p>so the letter b didn't get the white-space removed as I was expecting...?</p>

<p>Anyone have any ideas</p>

<p>[NOTE: the .Dump() method is an extension menthod in LINQPad that prints out the contents of any object in a nice intelligently formatted way]</p>

you're just creating a trimmed string, not assigning anything to it.
```
```
var s = "  asd   ";
s.Trim();
```
```
won't update s, while..
```
```
var s = "   asd   ";
s = s.Trim();
```
```
will..
```
```
var listFromSplit = "a, b".Split(',').Select(s=>s.Trim());
```
```
would, i suppose, be how i'd go about it.