我有 Employee 类,我需要实现 IComparable 并使用 CompareTo 方法按姓名对员工进行排序。据我所知,我必须返回 1、-1 和 0,但我该如何使用这些字符串?
这是我的。
class Employee : IComparable<Employee>
{
string name;
string address;
public int CompareTo(Employee obj)
{
Employee person = obj;
}
}
最佳答案
最简单的方法就是将它传递给一个已经实现的比较方法。在这种情况下,由于您只需要比较两个字符串,您可以调用 String.Compare
:
class Employee : IComparable<Employee>
{
string name;
string address;
public int CompareTo(Employee obj)
=> string.Compare(name, obj.name);
}
您也可以使用 name.CompareTo(obj.name)
,但是您需要担心 name
是否可能为 null。根据the MSDN article在 String.Compare
上:
One or both comparands can be null. By definition, any string, including the empty string (""), compares greater than a null reference; and two null references compare equal to each other.
关于c# - 用字符串实现 IComparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580026/