我正在学习简单的DTO课程。当结果存储到excel中时,我想动态设置此dto属性的列顺序。
Public class Student
{
public int Id {get;set;}
public string FirstName {get;set;}
public string LastName {get;set;}
}
我知道有一种在DTO内的每个属性上使用DataAnnotation列顺序属性的方法。但是有没有一种方法可以使用代码来设置DTO的列顺序。
我正在使用简单的Web应用程序,并添加了System.ComponentModel.DataAnnotation参考。
如果不使用DataAnnotation来解决问题,可以使用出色的代码设置列顺序
答案 0 :(得分:0)
在您的类中或在另一个类中使用静态数组按您想要的顺序列出所有列的方式怎么样?保存为excel时,您首先循环遍历该数组以正确的顺序获取列。
类似的东西:
public class Student
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List<string> OrderedProperties => new List<string> { "LastName", "FirstName", "Id" };
}
public class DataAccess
{
public void SaveStudentToExcel()
{
var student = new Student(); // instead of new this should be your object filled with real data.
foreach (var propName in student.OrderedProperties)
{
var val = student.GetType().GetProperty(propName).GetValue(student, null);
// new cell in excel => with val and propName then save
}
}
}