首页 > 代码库 > ArrayList.Sort()解析

ArrayList.Sort()解析

ArrayList的sort函数有几种比较常用的重载:

1.不带参数

2.带一个参数

 

public virtual void Sort(	IComparer comparer)

参数

comparer
类型:System.Collections.IComparer 比较元素时要使用的 IComparer 实现。 - 或 - null 引用(Visual Basic 中为 Nothing)将使用每个元数的 IComparable 实现。
example:
using System;using System.Collections;public class SamplesArrayList  {   public class myReverserClass : IComparer  {      // Calls CaseInsensitiveComparer.Compare with the parameters reversed.      int IComparer.Compare( Object x, Object y )  {          return( (new CaseInsensitiveComparer()).Compare( y, x ) );      }   }   public static void Main()  {      // Creates and initializes a new ArrayList.      ArrayList myAL = new ArrayList();      myAL.Add( "The" );      myAL.Add( "quick" );      myAL.Add( "brown" );      myAL.Add( "fox" );      myAL.Add( "jumps" );      myAL.Add( "over" );      myAL.Add( "the" );      myAL.Add( "lazy" );      myAL.Add( "dog" );      // Displays the values of the ArrayList.      Console.WriteLine( "The ArrayList initially contains the following values:" );      PrintIndexAndValues( myAL );      // Sorts the values of the ArrayList using the default comparer.      myAL.Sort();      Console.WriteLine( "After sorting with the default comparer:" );      PrintIndexAndValues( myAL );      // Sorts the values of the ArrayList using the reverse case-insensitive comparer.      IComparer myComparer = new myReverserClass();      myAL.Sort( myComparer );      Console.WriteLine( "After sorting with the reverse case-insensitive comparer:" );      PrintIndexAndValues( myAL );   }   public static void PrintIndexAndValues( IEnumerable myList )  {      int i = 0;      foreach ( Object obj in myList )         Console.WriteLine( "\t[{0}]:\t{1}", i++, obj );      Console.WriteLine();   }}/* This code produces the following output.The ArrayList initially contains the following values:        [0]:    The        [1]:    quick        [2]:    brown        [3]:    fox        [4]:    jumps        [5]:    over        [6]:    the        [7]:    lazy        [8]:    dogAfter sorting with the default comparer:        [0]:    brown        [1]:    dog        [2]:    fox        [3]:    jumps        [4]:    lazy        [5]:    over        [6]:    quick        [7]:    the        [8]:    TheAfter sorting with the reverse case-insensitive comparer:        [0]:    the        [1]:    The        [2]:    quick        [3]:    over        [4]:    lazy        [5]:    jumps        [6]:    fox        [7]:    dog        [8]:    brown */

ArrayList.Sort()解析