如何排序ArrayList(int)

如何按升序和降序对Arraylist进行排序。 例。

 ArrayList list= new ArrayList(); list.Add(2); list.Add(8); list.Add(0); list.Add(1); 

如何按升序和降序对上面的列表进行排序?

您可以使用list.Sort()升序。 对于降序,您需要通过实现IComparer来颠倒顺序。 这样的事情会做:

 // calling normal sort: ArrayList ascendingList = list.Sort(); // calling reverse sort: ArrayList descendingList = list.Sort(new ReverseSort()); // implementation: public class ReverseSort : IComparer { public int Compare(object x, object y) { // reverse the arguments return Comparer.Default.Compare(y, x); } } 

请注意,就像Jon Skeet在主要问题下的注释线程中提到的那样,您根本不需要使用无类型的ArrayList。 相反,您可以使用通用List ,它是类型安全的,而且更加通用。

您可以使用list.Sort()函数。 请参阅此处的示例http://msdn.microsoft.com/ru-ru/library/0e743hdt.aspx

您可以使用ArrayList.Sort方法

ArrayList包含Sort方法。 (已编辑删除不正确的.NET信息)

使用数组列表而不是List这是危险的,但是,这是您正在寻找的:

 System.Collections.ArrayList al = new System.Collections.ArrayList(); al.Add(5); al.Add(3); al.Add(1); al.Add(4); al.Add(0); al.Sort(); foreach (var x in al) { Console.WriteLine(x.ToString()); } al.Sort(new DescendingIntSorter()); foreach (var x in al) { Console.WriteLine(x.ToString()); } public class DescendingIntSorter : System.Collections.IComparer { public int Compare(object x, object y) { return ((int)y).CompareTo((int)x); } } 

list.Sort()会对它们进行排序,但我建议使用List <>和Collections进行排序。 避免使用ArrayList imo。

使用升序列表,您可以使用list.Sort()

而对于下降列表,有一个简单的方法来做到这一点!

您可以像这样执行降序列表:

 list.Sort(); list.Reverse();