有没有办法对属性进行排序而无需输入" Order"在他们?

时间:2016-09-10 12:50:38

标签: c# sorting properties attributes

我们已经找到了如何根据"订单"对属性进行排序。 attribute

但是有没有办法对属性进行排序而无需输入" Order"在他们。我想要一个属性" EndOfList"或者"最后"这将说明最后排序。因此,我不必使用Orders使代码混乱。

1 个答案:

答案 0 :(得分:0)

好的,我明白了。

我们可以改变属性类。

public class Items : Attribute
{
    public bool Last { get; set; }
    public Items(bool last = false)
    {
        this.Last = last;
    }
}

然后改变主要类

public class client
{
    [Items]
    public string fName { get; set; }

    [Items(true)]
    public string lName { get; set; }

    [Items]
    public string mName { get; set; }
}

然后改变排序

var sorted = properties
.OrderBy(p => ((Items)p.GetCustomAttributes(true)
                       .FirstOrDefault(a => a is Items)).Last);