C#,如何简单地改变班级成员的顺序

Noy*_* El 4 .net c# class

嗨,我有一个派生自另一个班级的班级.像这样 :

public  class Customer
  {
    public string Date{ get; set; }
    public string InstallationNo{ get; set; }
    public string SerialNo { get; set; }        
  } 
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个名为Customer_U的类,该类派生自Customer

 public  class Customer_U:Customer
  {
    public string Bill{ get; set; }            
  }  
Run Code Online (Sandbox Code Playgroud)

我有一个简单的问题.我有很多时间谷歌,但没有答案.我的列表中填充了以下数据:

List<Customer_U> customer= new List<Customer_U>() 我使用此列表创建一个Excel.在excel colum顺序是这样的:

比尔---日期--- InstalltionNo --- SerialNo.

我想要这个订单.我希望"比尔"成员成为最后一栏.如何在从另一个类派生的类中创建成员的顺序

Dea*_*ard 5

CLR类中没有已定义的顺序; 它取决于正在检查类的元数据以确定如何解释类​​的实现.

例如,您的Excel库可能使用反射来检查您传递它的类,并且反射不能保证处理事物的顺序.

其他实现(如WCF DataContractSerializer或ProtoBuf.NET)通过使用DataMember处理顺序.

也就是说,如果您的库可以处理动态或匿名类型,那么您可以使用其他答案中详述的方法..NET似乎始终以与创建它们相同的顺序反映这些类型.

var x = new { Z = "", Y = 1, X = true };
Console.WriteLine(x.GetType().GetProperties().Select(y => y.Name));
Run Code Online (Sandbox Code Playgroud)

但是应该注意,这是一个实现细节,不应该依赖它.我会看看你的库是否允许你指定你的类中的属性和电子表格中的列之间的映射,否则你可能会遇到奇怪的错误!