如何在 F# 中按字母顺序对字符串进行排序?

3

我有一个字符串 "DBCA",想要在 F# 中对它进行排序。

let sortedString str =
    ...

printfn "%A" <| sortedString "DBCA" // "ABCD"

C#代码示例

String
    .Concat(
        _str
            .OrderBy(ch => ch)
    );
2个回答

7
open System

let sortedString (str : string) = str |> Seq.sort |> String.Concat

如果由于某种原因您不想打开System或使用System.String,而是使用F# String,则可以执行以下操作:"bca" |> Seq.sort |> Seq.map string |> String.concat "" - Peheje

1

使用LINQ的解决方案

open System
open System.Linq

let orderBy f xs = Enumerable.OrderBy(xs, new Func<_,_>(f))

let sortedString (str:string) =
    str 
    |> List.ofSeq
    |> orderBy (fun ch -> ch)
    |> String.Concat

我有一个解决方案,但上面的答案更好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接