F# 列表到 C# IEnumerable:最有效的方法?

F# list to C# IEnumerable: most efficient method?

我目前正在使用用 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.ofListList.toSeq,尤其是当代码是较大的 F# 管道的一部分时,因为这样会使代码更好一些:

someInput
|> List.map (fun x -> whatever) 
|> List.toSeq