ArrayList
カスタムアイテムを並べ替えて、「少なくとも1つのオブジェクトが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;
}
}
このコードは問題なくビルドされます。もう1つ覚えておくべきことがあります。方法はわかりませんが、これが問題になる可能性があると思います。上記のクラスは内部クラスです。それが私をつまずかせているのであれば、どのようにして内部クラスを比較しますか?