Why state in a structs in a List cannot be change?
<p>I know this sounded stupid. But I gotta be doing something wrong here.</p>

<p>Say,</p>

<pre><code>struct lala
{
    private bool state1;

    public lala(bool state1)
    {
        this.state1 = state1;
    }

    public void SetState1ToTrue()
    {
        this.state1 = true;
    }

    public bool GetState1()
    {
        return this.state1;
    }
}
</code></pre>

<p>Then somewhere...</p>

<pre><code>List&lt;lala&gt; lalas = new List&lt;lala&gt;();

lalas.Add(new lala(false));
lalas.Add(new lala(false));

lalas[0].SetState1ToTrue();

// Why is it False???
Console.WriteLine(lalas[0].GetState1());
</code></pre>

<p>Are there any workarounds to this except changing it to:</p>

<pre><code>List&lt;lala&gt; lalas = new List&lt;lala&gt;();

lalas.Add(new lala(false));
lalas.Add(new lala(false));

lala newLala = lalas[0];
newLala.SetState1ToTrue();
lalas[0] = newLala;

// It's True, finally.
Console.WriteLine(lalas[0].GetState1());
</code></pre>

<p>Which looked awful, unelegant and wasted 2 lines of code. If there's any Linq-ish or Functional Programming-ish way in say 1 line of code that would be awesome.</p>
