zoukankan      html  css  js  c++  java
  • [学习官方例子]TComparer

    代码如下:

    program TComparerTest;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils, Generics.Defaults, Generics.Collections;
    
    type
      TIntStringComparer = class(TComparer<String>)
      public
        function Compare(const Left, Right: String): Integer; override;
      end;
    
      { TIntStringComparer }
    
    function TIntStringComparer.Compare(const Left, Right: String): Integer;
    begin
      Result := StrToInt(Left) - StrToInt(Right);
    end;
    
    procedure SortMemos(const Comparer: IComparer<String>);
    var
      List: TList<String>;
      i: Integer;
    begin
      List := TList<String>.Create();
      for i := 0 to 4 do
        List.Add('第' + IntToStr(2-i) + '个数');
      List.Sort();
    
      for i := 0 to 4 do
        writeln(List[i]);
      List.Free;
    end;
    
    var
      Cmp: TIntStringComparer;
    
    begin
      Cmp := TIntStringComparer.Create();
      writeln('方法一:');
      try
        SortMemos(Cmp);
      finally
        Cmp.Free;
      end;
    
      writeln(#10, '方法二:');
      SortMemos(TComparer<String>.Default);
    
      writeln(#10, '方法三:');
      SortMemos(TStringComparer.Ordinal);
    
      readln;
    
    end.

    效果图:

    mx32A50

  • 相关阅读:
    Sublime Text3 包管理器、插件安装
    Sublime text3 安装
    VS中的波浪线
    VS的启动方式
    VS常用快捷键
    C#基础性问题
    nginx前端项目发布
    vue父子组件实现数据双向绑定
    常用在线echarts图表
    使用echarts地图踩坑记
  • 原文地址:https://www.cnblogs.com/wouldguan/p/2211064.html
Copyright © 2011-2022 走看看