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