gpt4 book ai didi

C# - 如何为 IComparable 类实现多个比较器?

转载 作者:可可西里 更新时间:2023-11-01 08:34:09 25 4
gpt4 key购买 nike

我有一个实现 IComparable 的类。

public class MyClass : IComparable<MyClass>
{
public int CompareTo(MyClass c)
{
return this.whatever.CompareTo(c.whatever);
}

etc..
}

然后我可以调用类的泛型列表的排序方法

List<MyClass> c = new List<MyClass>();
//Add stuff, etc.

c.Sort();

并根据我的比较器对列表进行排序。

如何根据 MyClass 的其他属性指定更多比较器以不同方式对我的集合进行排序,以便让用户以多种不同方式对我的集合进行排序?

最佳答案

要在您的类(class)中设置排序:

public static Comparison<MyClass> OtherComparison = delegate(MyClass object1, MyClass object2)
{
return object1.Whatever.CompareTo(object2.Whatever);
};

然后使用您的新比较进行排序:

List<MyClass> myClassList = new List<MyClass>();
myClassList.Sort(MyClass.OtherComparison);

除非你显然不想对空列表进行排序:)

关于C# - 如何为 IComparable<T> 类实现多个比较器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2480111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com