Comment puis-je transformer une liste & lt; T & gt; dans un DataSet?

Donné une liste d'objets, je suis besoin de le transformer en un jeu de données où chaque élément de la liste est représenté par une ligne et chaque propriété est une colonne de la ligne. Ce jeu de données sera ensuite transmis à un Aspose.Les cellules fonction, dans le but de créer un document Excel en tant que rapport.

Dire que j'ai les suivantes:

public class Record
{
   public int ID { get; set; }
   public bool Status { get; set; }
   public string Message { get; set; }
}

Donné une Liste d'enregistrements, comment puis-je le transformer en un jeu de données comme suit:

ID Status Message
1  true   "message" 
2  false  "message2" 
3  true   "message3" 
...

Pour le moment la seule chose à laquelle je pense est comme suit:

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);
}

Mais de cette façon, me laisse penser, il doit y avoir une meilleure façon depuis au moins si de nouvelles propriétés sont ajoutés à l'Enregistrement alors qu'ils n'apparaissent pas dans le jeu de données...mais en même temps cela me permet de contrôler l'ordre de chaque propriété est ajoutée à la ligne.

Personne ne sait d'une meilleure façon de le faire?

source d'informationauteur mezoid