Đưa ra một danh sách các đối tượng, tôi cần chuyển đổi nó thành tập dữ liệu trong đó mỗi mục trong danh sách được biểu thị bằng một hàng và mỗi thuộc tính là một cột trong hàng. Số liệu này sau đó sẽ được chuyển đến một hàm Aspose.Cells để tạo tài liệu Excel dưới dạng báo cáo.Làm cách nào để chuyển đổi Danh sách <T> thành Tập dữ liệu?
Nói rằng tôi có như sau:
public class Record
{
public int ID { get; set; }
public bool Status { get; set; }
public string Message { get; set; }
}
Với một danh sách hồ sơ, làm thế nào để biến nó thành một DataSet như sau:
ID Status Message
1 true "message"
2 false "message2"
3 true "message3"
...
Tại thời điểm điều duy nhất tôi có thể nghĩ đến như sau:
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);
}
Nhưng cách này khiến tôi nghĩ phải có cách tốt hơn từ ít nhất là nếu các thuộc tính mới được thêm vào Record thì chúng sẽ không hiển thị trong DataSet ... nhưng đồng thời nó cho phép tôi kiểm soát thứ tự mỗi thuộc tính được thêm vào hàng.
Có ai biết cách tốt hơn để làm điều này không?
Vâng, cộng đồng đã nói nên tôi sẽ bỏ phiếu cho câu trả lời này mặc dù tôi sẽ không thể sử dụng nó cho mục đích của mình vì tôi muốn có thể kiểm soát thứ tự của các tham số. Nhưng tôi chắc chắn sẽ giữ giải pháp này trong đầu ... – mezoid
Này, tôi vừa thử nghiệm phần mở rộng của bạn và thấy rằng nếu bạn muốn kiểm soát thứ tự các cột xuất hiện trong datatable thì bạn cần khai báo chúng theo thứ tự bạn muốn chúng trong đối tượng của loại T mà bạn chuyển đến phần mở rộng. Thật tuyệt vời! – mezoid