有没有一种方法可以对属性进行排序而不必加上“order”?在他们身上

本文关键字:不必 order 他们 排序 一种 方法 属性 有没有 | 更新日期: 2023-09-27 18:06:24

我们已经知道了如何对给定的"Order"属性进行排序。

但是,有没有一种方法可以对属性进行排序,而不必在属性上加上"Order"?我想只是有一个属性"EndOfList"或"最后",将声明一定要对这些最后排序。这样我就不必用Orders弄乱代码了。

有没有一种方法可以对属性进行排序而不必加上“order”?在他们身上

好了,我明白了。

我们可以修改Attribute类

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);