【发布时间】:2010-12-21 16:29:33
【问题描述】:
我有一个包含三个字段的人员类,标题、姓名、性别,我想为其创建一个自定义排序,首先按标题排序,然后按姓名排序,然后按性别升序:
public class SortPerson : IComparer
{
public int Compare(object x, object y)
{
(…)
}
}
我知道如何只对一个变量进行比较: 但是我必须如何处理三个?
public class SortPerson : IComparer
{
int IComparer.Compare(object a, object b)
{
Person p1=(Person)a;
Person p2=(Person)b;
if (p1.Title > p2.Title)
return 1;
if (p1.Title < p2.Title)
return -1;
else
return 0;
}
}
非常感谢,
【问题讨论】:
-
你认为你应该怎么做?一个领域自然应该更重要,对吗?然后另一个?最后一个?所以比较第一个字段。如果该结果为 0,则比较第二个。如果该结果为 0,则比较第三个。返回结果。把它变成一种方法,你就有了一个开始。然后重构它。
标签: c# .net comparison