我目前正在使用用 C# 编写的带有 GUI 的 F# 库,我想问一下将 F#(通用)列表传递给 C# 代码(通用 IEnumerable)的最佳或正确方法是什么。
到目前为止我找到了三种方法:
[1; 2; 3; 4; 5;] |> List.toSeq
[1; 2; 3; 4; 5;] |> Seq.ofList
[1; 2; 3; 4; 5;] :> seq<int>
请问这三种方法有什么实际区别吗?
最佳答案
如果查看 F# 库源代码,您会发现它们都是一样的:
Seq.ofList
只需调用List.ofSeq
如你所见here in the "list.fs" fileList.toSeq
使用s :> seq<_>
实现如你所见here in the "seq.fs" file
就可读性而言,我可能会使用 Seq.ofList
或 List.toSeq
,尤其是当代码是更大的 F# 管道的一部分时,因为这样会使代码更好一些:
someInput
|> List.map (fun x -> whatever)
|> List.toSeq
关于c# - F# 列表到 C# IEnumerable : most efficient method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37554540/