I have a string in F#:
let name = "Someone"
我还有一个字符串数组:
let mutable arraysOfNames : string[] = [||]
我想将字符串名称添加到数组arrayOfNames中。 我该如何做? 它不必是一个数组,它可以是Sequence或任何其他集合,我可以检查它是否为空。
let mutable listOfNames : string list = []
listOfNames <- "Alice" :: listOfNames
listOfNames <- "Bob" :: listOfNames
//...
let names = listOfNames |> List.toArray
示例2:
let resizeArrayOfNames = ResizeArray<string>()
resizeArrayOfNames.Add "Alice"
resizeArrayOfNames.Add "Bob"
let names = resizeArrayOfNames.ToArray()
let names = listOfNames |> List.rev |> List.toArray
对于任何在F#中作为IEnumerable<T>
别名的Seq
,您可以编写以下函数:
let addToSequence aseq elm = Seq.append aseq <| Seq.singleton elm
并且这样使用:
let withSomeone = addToSequence [||] "Someone"
在获取结果序列后,您可以使用Seq.toArray
或Seq.toList
请查看Array.append。
// 签名: Array.append : 'T [] -> 'T [] -> 'T []
// 用法: Array.append array1 array2
因此,在您的情况下,您可以像这样使用它:
let name = "someone"
let mutable arrayOfNames = Array.append [|"test"; "abc"|] [|name|]
printfn "%A" arrayOfNames
//[|"test"; "abc"; "someone"|]
所以您只需将字符串转换为数组(使用 [|string|])。由于Array
包含append
函数,因此您可以通过这种方式将字符串附加到数组中。
您可以在使用可变数组时,使用Array.append
方法:
let mutable my_array = [||]
for i in 0 .. array_size do
my_array <- [|i|] |> Array.append my_array
// my_array <- Array.append my_array [|i|]
printfn "my array is: %A" my_array