một câu hỏi đơn giản Tôi không thể tìm thấy câu trả lời cho: cách thêm phần tử vào chuỗi? Ví dụ tôi có một seq và một newElem XElement Tôi muốn nối thêm vào nó.F # Thêm phần tử vào một chuỗi
Cảm ơn
một câu hỏi đơn giản Tôi không thể tìm thấy câu trả lời cho: cách thêm phần tử vào chuỗi? Ví dụ tôi có một seq và một newElem XElement Tôi muốn nối thêm vào nó.F # Thêm phần tử vào một chuỗi
Cảm ơn
Seq.append:
> let x = { 1 .. 5 };;
val x : seq<int>
> let y = Seq.append x [9];; // [9] is a single-element list literal
val y : seq<int>
> y |> Seq.toList;;
val it : int list = [1; 2; 3; 4; 5; 9]
Ngoài ra còn có một giải pháp cấp bách ...
> let x = seq {1..5}
> let y = seq { yield! x; yield 9 } // Flatten the list,then append your element
> Seq.to_list y;;
val it : int list = [1; 2; 3; 4; 5; 9]
Đây có thể là tốt hơn nếu các vấn đề tiềm ẩn là một một mệnh lệnh, và nó tự nhiên nhất là sử dụng câu lệnh sản lượng trong một vòng lặp.
let mySeq = seq { for i in 1..10 do yield i };;
Bạn cũng có thể sử dụng
let newSeq = Seq.append oldSeq (Seq.singleton newElem)
Đó là một sửa đổi nhỏ của câu trả lời đầu tiên nhưng gắn thêm chuỗi thay vì một danh sách để một chuỗi.
cho đoạn mã sau
let startSeq = seq {1..100}
let AppendTest = Seq.append startSeq [101] |> List.ofSeq
let AppendTest2 = Seq.append startSeq (Seq.singleton 101) |> List.ofSeq
let AppendTest3 = seq { yield! startSeq; yield 101 } |> List.ofSeq
looped 10000 hành thời gian chạy là
Elapsed 00:00:00.0001399
Elapsed 00:00:00.0000942
Elapsed 00:00:00.0000821
Đưa những từ đó những gì bạn sẽ làm.
Có lẽ nên thêm rằng điều này không thêm phần tử vào chuỗi, nó tạo chuỗi mới với phần tử bổ sung được thêm vào? – Benjol
y |> Seq.toList ;; – Indy9000