Я хочу реализовать логику сортировки следующим образом: установите Вашингтон первым, если он существует.Следующий код работает хорошо. Однако я не забочусь о городах, не равных «Вашингтон», и задаюсь вопросом, почему мне нужно вернуть -1 и не может вернуть 0 (что означает «равно» в IComparable)?
PS Iпопробовал, "Чикаго" будет первым, если вернет 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;
}
}
}