c#list comparer使用两个比较元素

时间:2010-03-08 04:49:58

标签: c#

private class CompAdvertisements : IComparer<Advertisements>
{
private string OrderBy { get; set; }

public CompAdvertisements(string orderBy)
{
OrderBy = orderBy;
}

#region IComparer<Advertisements> Members

public int Compare(Advertisements x, Advertisements y)
{
return x.Country.Name.CompareTo(y.Country.Name);

我还可以使用x.Name.CompareTo(y.Name);在比较器中,我将与两个元素进行比较,这些元素依次按顺序排序,按顺序排列2

2 个答案:

答案 0 :(得分:3)

是。如果外部比较表明您的两个元素(Country.Name)是相同的,那么您将返回内部比较的结果(somethingElse)。你可以做任意深度的比较。

outerCompare = x.Country.Name.CompareTo(y.Country.Name);
if (outerCompare != 0)
{
    return outerCompare;
}
else
{
    return (x.Name.CompareTo(y.Name));
}

答案 1 :(得分:0)

Eric J.是对的。您可能还想查看this stackoverflow question.这里的答案提供了几种可以对List进行排序的方法,并且它们还详细介绍了如何使用IComparer对象执行与您正在执行的操作类似的任务。 / p>