¿Cómo transformo una Lista <T> en un DataSet?
Dado una lista de objetos, necesito transformarlo en un conjunto de datos donde cada elemento de la lista esté representado por una fila y cada propiedad sea una columna en la fila. Este conjunto de datos se pasará a una Aspose.Cells para crear un documento de Excel como informe.
Di que tengo lo siguiente:
public class Record
{
public int ID { get; set; }
public bool Status { get; set; }
public string Message { get; set; }
}
Dado una lista de registros, ¿cómo puedo transformarlo en un DataSet de la siguiente manera:
ID Status Message
1 true "message"
2 false "message2"
3 true "message3"
...
Por el momento, lo único que puedo pensar es lo siguiente:
DataSet ds = new DataSet
ds.Tables.Add();
ds.Tables[0].Add("ID", typeof(int));
ds.Tables[0].Add("Status", typeof(bool));
ds.Tables[0].Add("Message", typeof(string));
foreach(Record record in records)
{
ds.Tables[0].Rows.Add(record.ID, record.Status, record.Message);
}
Pero de esta manera me deja pensando que debe haber una mejor manera ya que, al menos, si se agregan nuevas propiedades a Record, no aparecerán en el DataSet ... pero al mismo tiempo me permite controlar el pedido cada propiedad se agrega a la fila.
Alguien sabe de una mejor manera de hacer esto?