是否可以使用 iComparer 使用对象中的两个值对列表进行排序?

我有一个基于 value1 排序的自定义比较器类。但是对 value1 和 value2 进行排序的最佳方法是什么?

按 value2 然后 value1 对列表进行排序会起作用吗?

最佳答案

您的 IComparer 类应该处理它。例如:

public class ThingComparer : IComparer
{
    public int Compare(object x, object y)
    {
        // null- and type-checking omitted for clarity

        // sort by A, B, and then C

        if (x.A != y.A) return x.A.CompareTo(y.A);
        if (x.B != y.B) return x.B.CompareTo(y.B);
        return x.C.CompareTo(y.C);
    }
}

10-06 13:02