排序和IComparable的问题

Tra*_*nus 2 c# icomparable

我正在尝试对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;
            }
        }
Run Code Online (Sandbox Code Playgroud)

这段代码构建得很好.还有一件事需要记住,我怀疑这可能是问题,虽然我不明白,上面的类是一个内部类.如果这就是绊倒我的话,你会怎么去比较一个内部阶级?

Jon*_*eet 9

你已经实现了IComparable<T>,而不是IComparable.它们是不同的接口.如果你打算使用泛型,那么就List<T>开始使用.我的意思是你可以实现IComparable,但如果我是你,我只会放弃有点过时的非通用集合.