给定一个对象列表,我需要将其转换为数据集,其中列表中的每个项都由一行表示,每个属性都是行中的列。然后,此数据集将传递给Aspose.Cells函数以创建Excel文档作为报告。
假设我有以下内容:
public class Record
{
public int ID { get; set; }
public bool Status { get; set; }
public string Message { get; set; }
}
给定一个列表 records,如何将其转换为以下的 DataSet:
ID Status Message
1 true "message"
2 false "message2"
3 true "message3"
...
目前我能想到的唯一方法是:
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);
}
但是这种方式让我想到一定有更好的方法,因为至少如果Record添加了新属性,它们不会显示在DataSet中...但同时它允许我控制将每个属性添加到行的顺序。
有人知道更好的方法吗?