title: Best way to create a data model with dynamic amount of properties in .NET
body: <p>I'm writing a data access layer where I want to return just the data required for each request. Let's say there is a total of 100 properties that you could retrieve, but a normal request will probably just need two or three of them.</p>
  
  <p>So I've added a parameter to the request that specifies the properties you want to return and only this data will be pulled from the DB.</p>
  
  <p>A normal request will return a list of 1,000 - 10,000 rows. My big concern now is how to return them efficiently.</p>
  
  <p>The data will be used "internally" in my .NET-project but may also be serialized to XML and JSON, and therefore I don't want to have 98 empty properties when in fact there is just 2 of them that are populated with data.</p>
  
  <p>So, what would be the best technique (in case of performance and "overhead size") to use for creating this model?</p>
  
  <p><strong>Update:</strong>
  So a property could actually have three states. If it never was asked for, it should somehow be removed, and if it was asked for it should be either null or the actual value.</p>