Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Sorts the elements of an array, using the given comparison function as the order, returning a new array.
Namespace/Module Path: Microsoft.FSharp.Collections.Array
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
Array.sortWith : ('T -> 'T -> int) -> 'T [] -> 'T []
// Usage:
Array.sortWith comparer array
Parameters
comparer
Type: 'T -> 'T -> intThe function to compare pairs of array elements.
array
Type: 'T []The input array.
Return Value
The sorted array.
Remarks
This is not a stable sort, that is, the original order of equal elements might not be preserved. For a stable sort, consider using Seq.sort.
This function is named SortWith in compiled assemblies. If you are accessing the function from a language other than F#, or through reflection, use this name.
Example
The following code shows the use of Array.sortWith.
open System
let array1 = [| "<>"; "&"; "&&"; "&&&"; "<"; ">"; "|"; "||"; "|||" |]
printfn "Before sorting: "
array1 |> printfn "%A"
let sortFunction (string1:string) (string2:string) =
if (string1.Length > string2.Length) then
1
else if (string1.Length < string2.Length) then
-1
else
String.Compare(string1, string2)
Array.sortWith sortFunction array1
|> printfn "After sorting: \n%A"
Output
Before sorting: [|"<>"; "&"; "&&"; "&&&"; "<"; ">"; "|"; "||"; "|||"|] After sorting: [|"&"; "|"; "<"; ">"; "&&"; "||"; "<>"; "&&&"; "|||"|]
Platforms
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Version Information
F# Runtime
Supported in: 2.0, 4.0
Silverlight
Supported in: 3