如何根据当前月份排序ArrayList里面1-12个数字比如 当前月份是 5  那么 就是5 4 3 2 1 12 11 10 9 8 7 6 请高手帮助 最好能用到IComparer接口

解决方案 »

  1.   

    此文章已经说得很详细了
    http://blog.csdn.net/mngzilin/archive/2010/04/24/5525002.aspx
      

  2.   

    ArrayList arr = new ArrayList();
    arr.sort(new StudentComparer());public class StudentComparer : IComparer
    {
      public int Compare(object x, object y)
      {
      return x.ZIndex.CompareTo(y.ZIndex);
      }

    List<T> t=new List<T>();
    t.Sort(delegate( t p1, t p2) { return p1.ID.CompareTo(p2.ID); });
      

  3.   


            static void Main(string[] args)
            {
                ArrayList list = new ArrayList();
                for (int i = 1; i <= 12; i++)
                    list.Add(i);
                list.Sort(new ojlovecdComparer());
                foreach (int i in list)
                    Console.WriteLine(i);
            }        public class ojlovecdComparer : IComparer
            {
                static int monthNow = DateTime.Today.Month;            #region IComparer 成员            public int Compare(object x, object y)
                {
                    int x1 = Convert.ToInt32(x);
                    int y1 = Convert.ToInt32(y);
                    if (x1 == monthNow)
                        return 1;
                    else if (y1 == monthNow)
                        return -1;
                    else if (x1 < monthNow)
                    {
                        if (y1 < monthNow)
                            return y1.CompareTo(x1);
                        else
                            return x1.CompareTo(y1);
                    }
                    else
                    {
                        if (y1 < monthNow)
                            return x1.CompareTo(y1);
                        else
                            return y1.CompareTo(x1);
                    }
                }            #endregion
            }