ArrayList 排序问题。。。。。。。。。。。。。。。。。。。。。。。
ArrayList a = new ArrayList();
a.Add(3);
a.Add(2);
a.Add(4);
a.Add(5);
a.Add(1);
for(int j=0; j <i.Count; j++)
{
a.Sort();
this.TextBox1.Text += a[j].ToString() + ", ";
}
这样输出来的结果是:1,2,3,4,5,
我将 a.Sort() 改为 a.Reverse() 它怎么不是降序排列的
我想要的结果是:5,4,3,2,1, 应该怎么做。
------解决方案--------------------public class myReverserClass : IComparer {
// Calls CaseInsensitiveComparer.Compare with the parameters reversed.
int IComparer.Compare( Object x, Object y ) {
return( (new CaseInsensitiveComparer()).Compare( y, x ) );
}
}
IComparer myComparer = new myReverserClass();
Array.Sort( a, myComparer );
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
最新版本:20070212
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------楼上正解,用自定义的比较器
------解决方案--------------------ArrayList a = new ArrayList();
a.Add(3);
a.Add(2);
a.Add(4);
a.Add(5);
a.Add(1);
a.Sort();
a.Reverse();
for(int j=0; j <a.Count; j++)
{
this.textBox1.Text += a[j].ToString() + ", ";
}
------解决方案--------------------a.Reverse(); // <= 把代码提到这里来
for(int j=0; j <i.Count; j++)
{
this.TextBox1.Text += a[j].ToString() + ", ";
}