title: Modelling large list of properties in C#
body: <p>I have a list of 50 attributes that an object can have. This object can have different categories of properties - category 1, category 2 and category 3. Category 1 is subset of category 2, category 2 is subset of category 3, and category 3 is the full list. I've initially used struct but I'm now wondering if I should use class, or if I'm going about it the wrong way in the first place. For the sake of let's trim it down to 5 attributes and just 2 categories.</p>
  
  <pre><code>C1: A1, A2, A3
  C2: A1, A2, A3, A4, A5
  </code></pre>
  
  <p>The main thing I want to do is to save the struct or class on my main class without differentiating between the two. If I'm using a class, I could create a base class that the 2 category class can be derived from and save it as base class:</p>
  
  <pre><code>Category category;
  ...
  category = new Category1();
  category = new Category2();
  </code></pre>
  
  <p>Since I'm dealing with 10, 25, 50 attribute per category, the class definition is just a large list of properties which looks like struct would be a better fit.
  But if I use struct, it looks like I have to save it on as Object type? That seems kludgy.</p>
  
  <p>What would be the right way to go about this?</p>
  
  <hr>
  
  <p>Let me sneak in a second question here. :)
  So, since I have a large list of properties per class(or struct), would it be better to use object initializer instead of having a constructor with 10, 25, 50 parameters?</p>