MSDNによると、
Type.GetProperties() GetProperties メソッドは、アルファベット順や宣言順など、特定の順序でプロパティを返しません。プロパティが返される順序はさまざまであるため、コードはプロパティが返される順序に依存してはなりません。
このようなことができるように、プロパティに何らかの方法で注釈を付けることができますか (カスタム属性など)。
var properties = typeof(myClass).GetProperties()
.AsEnumerable().OrderBy(Func<VoodooOrdinalAttribute>);
と
public class MyClass
{
[VoodooOrdinalAttribute(2)] public string Color { get; set;}
[VoodooOrdinalAttribute(3)] public string Shape { get; set;}
[VoodooOrdinalAttribute(1)] public string Mass { get; set;}
}
この
public class VoodooOrdinalAttribute : Attribute
{
public VoodooOrdinalAttribute(int ordinal)
{
this.Ordinal = ordinal;
}
public int Ordinal { get; set; }
}
そして、プロパティの順序が
- 質量
- 色
- 形