Я пытаюсь отсортировать ArrayList
пользовательских элементов и получить «По крайней мере, один объект должен реализовывать IComparable». несмотря на то, что реализовал для них IComparable
интерфейс. Я просто вызываю по умолчанию Sort()
без параметров или что-нибудь. Определение объекта, который я пытаюсь отсортировать, выглядит следующим образом:
class AssetItem : System.IComparable<AssetItem>
{
public string AssetName { get; set; }
public int AssetID { get; set; }
public int CompareTo(AssetItem item)
{
if (null == item)
{
return 1;
}
else if (this.AssetID < item.AssetID)
{
return -1;
}
else if (this.AssetID == item.AssetID)
{
return this.AssetName.CompareTo(item.AssetName);
}
else
{
return 1;
}
}
Этот код прекрасно работает. Еще одна вещь, которую нужно иметь в виду, и я подозреваю, что это может быть проблемой, хотя я не понимаю как, класс выше является внутренним классом. Если меня это сбивает с толку, как бы вы сравнили внутренний класс?