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);在比较器中,我将比较两个元素像点顺序的东西和顺序的东西2c#列表比较器使用两个比较元素
如果x为null,如何使这个元素位于最上层的底部使用排序。 – senzacionale 2010-03-08 16:14:10
如果代码中的x和y可能是空的(包括将来重用代码的人),则应检查x和y是否为空。但是,因为在你的例子中,你只是比较来自相同两个对象的两组属性,如果它们都是null,那么它们是相等的(返回0),但是如果一个是null而一个不是null,那么它们是不相等的。在这种情况下,如果x不为空则返回1,如果y不为空则返回-1。 – 2010-03-08 17:19:48
我的印象是,如果你写x.Name.CompareTo(y.Name),并且x或y为null,那么你会得到一个NullReferenceException。 – Phil 2010-03-09 03:22:10