我知道啊,但怎么实现2个,在sort时候怎么调用?

解决方案 »

  1.   

    这我知道啊,但怎么实现2个呢?还有在sort的时候怎么传递参数呢?
      

  2.   

    你可以试一下下面的代码:
    public class SortClass : IComparable 
    {
        public string name;
        public int id;    public SortClass(string name, int id) {
    this.name = name;
    this.id = id;
        }    public int CompareTo(object obj) {
    return id - (((SortClass)obj).id);
             // 我这边少些了一个字符串的排序方法,这个排序方法返回整数就可以了
        }
    }public class Test {
        public static void Main(string[] args) { ArrayList a = new ArrayList();
    a.Add(new SortClass("haha", 1));
    a.Add(new SortClass("hihi", 2));
    a.Add(new SortClass("xixi", 3));
    a.Add(new SortClass("test", 2));
    a.Sort(); foreach(SortClass s in a) {
           Console.WriteLine(((SortClass)s).name);
    }
        }
    }
      

  3.   

    public int CompareTo(object obj) {
    return id - (((SortClass)obj).id);
    // 我这边少些了一个字符串的排序方法,这个排序方法返回整数就可以了
        }
    再加一个的话参数不是全一样了吗?怎么区别呢?
    还有a.Sort()的时候会调用哪个CompareTo?
      

  4.   

    TO:goldish
    不能编译,编译器说:
    mySort.cs(1,26): error CS0246: 找不到类型或命名空间名称“IComparable”(是否缺少using 指令或程序集引用?)你老看看是什么原因呢?