读书人

ArrayList 排序有关问题。

发布时间: 2012-01-31 21:28:41 作者: rapoo

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() + ", ";
}

读书人网 >C#

热点推荐