How might a List<T> be reset?
<p>I have an object I create and stick in a collection:</p>

<pre><code>public class Level
{
    private string id;

    private List&lt;LevelTypes&gt; usableLevelTypes;  // LevelTypes is an enum
    private List&lt;BlockTypes&gt; levelMapping;      // BlockTypes is also an enum

    public Level(string id, List&lt;LevelTypes&gt; levelTypes, List&lt;BlockTypes&gt; incomingBlocks)
    {
        this.id = id;
        this.usableLevelTypes = levelTypes

        levelMapping = incomingBlocks;
    }
</code></pre>

<p>Stepping through this, I can see each item being set properly.  The object is then placed in a HashSet.</p>

<p>Another class then iterates through the HashSet calling each item's overloaded <code>.ToString()</code> method.  </p>

<p>At this point I have all relevant variables in this class on my watch list.  Everything within the object called is set properly. "id", "levelMapping" and all other variables that I have not listed including other <code>List&lt;T&gt;</code>'s and int's contain their proper values except "usableLevelTypes", which is reported as being empty. </p>

<pre><code>public override string ToString()
{
    var s = new StringBuilder();

    s.Append("ID: " + id);
    s.Append(" Level Types: " + usableLevelTypes[0].ToString()); // At this point,
    // this list should have at minimum one value in it.  However, it is empty and
    // will throw an exception stating as much.

    return s.ToString();
}
</code></pre>

<p>At no point is <code>.Clear()</code> called on the usableLevelTypes List and it is read-only.  How could it be reset when other lists within the same object are not?</p>
