Generics Defaults TDelegatedComparer (Delphi)
From RAD Studio Code Examples
Description
This example demonstrates the usage of TDelegatedComparer and anonymous methods in order to create a custom comparer.
Code
procedure Sort; var List: TList<String>; Comparer: IComparer<String>; I: Integer; begin Randomize; { Create a new delegated comparer. You will use anonymous methods. } Comparer := TDelegatedComparer<String>.Create( { TComparison<String> } function(const Left, Right: String): Integer begin { Consider the strings as numbers and return } { a comparison between them. } Result := StrToInt(Left) - StrToInt(Right); end); { Create a new list of strings. } List := TList<String>.Create(Comparer); { Populate the list with random numbers. } for I := 0 to 5 do List.Add(Random(5).ToString); { Sort the list } List.Sort; for I := 0 to List.Count - 1 do writeln(List[I]); { Free resources } List.Free; end; begin { Call the procedure defined above } Sort; readln; end.
Uses
- System.Generics.Defaults.TDelegatedComparer ( fr | de | ja )
- System.Generics.Defaults.IComparer ( fr | de | ja )
- System.Generics.Defaults.TDelegatedComparer.Create ( fr | de | ja )
- System.Generics.Defaults.TComparison ( fr | de | ja )