• 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( "	[{0}]:	{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]:    dog
    
    After sorting with the default comparer:
            [0]:    brown
            [1]:    dog
            [2]:    fox
            [3]:    jumps
            [4]:    lazy
            [5]:    over
            [6]:    quick
            [7]:    the
            [8]:    The
    
    After 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 
    */
    一览众山小
  • 相关阅读:
    php字符串常用函数
    调试心得总结
    搜索查询简单的网页摘要生成
    OFFICE三线表的制作
    阶段性总结20130613
    url查重bloom过滤器
    Linuxvim常用命令
    不打开文件操作db时,如果遇到和窗体交互,不会提示文档未锁,但同样需要锁定当前文档,代码如下
    样条曲线
    不用遍历得到btr中同一类型的实体 CAD2009 vs2008及以上
  • 原文地址:https://www.cnblogs.com/ZLGBloge/p/4119021.html
Copyright © 2020-2023  润新知