title: Is there a way to initialize members of a struct without using a constructor?
body: <p>I have a <code>struct</code> that contains two lists:</p>
  
  <pre><code>struct MonthData
  {
     public List&lt;DataRow&gt; Frontline;
     public List&lt;DataRow&gt; Leadership;
  }
  </code></pre>
  
  <p>However, I want to initialize both when the struct is created.  If I try:</p>
  
  <pre><code>struct MonthData
  {
     public List&lt;DataRow&gt; Frontline = new List&lt;DataRow&gt;();
     public List&lt;DataRow&gt; Leadership = new List&lt;DataRow&gt;();
  }
  </code></pre>
  
  <p>Then I get:</p>
  
  <pre><code>Error   23  'MonthData.Frontline': cannot have instance field initializers in structs
  ...
  </code></pre>
  
  <p>Since structs cannot have parameterless constructors, I can't just set this in a constructor either.  So far, I can only see the following options:</p>
  
  <ol>
  <li>Initialize both properties when I create an instance of MonthData</li>
  <li>Use a class instead of a struct</li>
  <li>Create a constructor with a parameter and use that</li>
  <li>Make getters and setters for the properties that initialize them
  lazily.</li>
  </ol>
  
  <p>What is the recommended approach for this?  Right now, I'm thinking making this a class is the best idea.</p>