2011-12-03 8 views
0

私はソートロジックを実装したいと思います。 次のコードはうまくいきます。しかし、私は "Washington"と等しくなく、返り値-1が必要で、IComparableで0を返すことができないと思っていません。List <ICompareable> .Sort()はどのように動作するのですか?

P.S.私はそれを試しました、 "シカゴ"が0を返すならば、最初になります。

class Program 
{ 
    static void Main(string[] args) 
    { 
     List<City> cityList = new List<City>() 
     { 
      new City(){Name = "New York"}, 
      new City(){Name ="Los Angeles"}, 
      new City(){Name="Washington"}, 
      new City(){Name="Chicago"} 
     }; 
     cityList.Sort(); 
    } 
} 

public class City: IComparable 
{ 
    public string Name { get; set; } 

    public int CompareTo(object obj) 
    { 
     if ((obj as City).Name == "Washington") 
     { 
      return 1; 
     } 
     else 
     { 
      return -1; 
     } 
    } 
} 

答えて

1

リターン0は文字列が等しいことを意味します。

objが "ワシントン"でないときはいつでも0を返し、時には "ワシントン"はの現在のインスタンスにあります。これは、ワシントンがトップに浮上するのを妨げるでしょう。

関連する問題