<p>I saw a code snippet yesterday in one of the responses here on StackOverflow that intrigued me. It was something like this:</p>

<pre><code> List&lt;string&gt; myList = new List&lt;string&gt; {"aBc", "HELLO", "GoodBye"};

 myList.ForEach(d=&gt;d.ToLower());
</code></pre>

<p>I was hoping I could use it to convert all items in myList to lowercase. However, it doesn't happen... after running this, the casing in myList is unchanged.</p>

<p>So my question is whether there IS a way, using LINQ and Lambda expressions to easily iterate through and modify the contents of a list in a manner similar to this.</p>

<p>Thanks,
Max</p>

```
```
[TestMethod]
public void LinqStringTest()
{
    List<string> myList = new List<string> { "aBc", "HELLO", "GoodBye" };
    myList = (from s in myList select s.ToLower()).ToList();
    Assert.AreEqual(myList[0], "abc");
    Assert.AreEqual(myList[1], "hello");
    Assert.AreEqual(myList[2], "goodbye");
}
```
```