title: Why is a list of string not updated, whereas list of complex object is updated
body: <p>Case 1 - I have a list of string, say</p>
  <pre><code>List&lt;string&gt; source = new List&lt;string&gt;();`
  source.Add(&quot;one&quot;);
  source.Add(&quot;two&quot;);
  source.Add(&quot;three&quot;);
  </code></pre>
  <p>If i update the value for &quot;two&quot; using below code, it wont update the value.</p>
  <p>Example -</p>
  <pre><code>source.ForEach(x =&gt; {if (x == &quot;two&quot;){x = &quot;twenty&quot;;}});
  </code></pre>
  <p>Case 2 -
  But when I have a <code>List&lt;ComplexObject&gt; obj = new List&lt;ComplexObject&gt;()</code>
  with two property Key, DisplayText
  with value as</p>
  <pre><code>1,&quot;One&quot;
  2, &quot;two&quot;
  </code></pre>
  <p>And I try to update using below code, the value will be updated</p>
  <pre><code> obj.ForEach(x =&gt; {if (x.Key == 2){ x.DisplayText = &quot;Update value for 2&quot;;}});
  </code></pre>
  <p>Though both are list but why is the behaviour different?</p>