简体   繁体   English

在C#列表和F#列表之间转换

[英]Converting between C# List and F# List

Remark: This is a self-documentation, but if you have any other suggestions, or if I made any mistakes/miss out something obvious, I would really appreciate your help. 备注:这是一个自我记录,但如果你有任何其他建议,或者如果我犯了任何错误/错过了明显的东西,我将非常感谢你的帮助。

Sources: 资料来源:

convert .NET generic List to F# list 将.NET泛型列表转换为F#列表

What can I do to pass a list from C# to F#? 如何将列表从C#传递给F#?

https://msdn.microsoft.com/en-us/library/4kf43ys3(v=vs.110).aspx?cs-save-lang=1&cs-lang=fsharp#code-snippet-1 https://msdn.microsoft.com/en-us/library/4kf43ys3(v=vs.110).aspx?cs-save-lang=1&cs-lang=fsharp#code-snippet-1


I am a beginner in F# and C#, and I want to convert a C# List to an F# List, and vice versa. 我是F#和C#的初学者,我想将C#List转换为F#List,反之亦然。 The code/commands for doing so changes depending on where is your code (in C# or F#). 执行此操作的代码/命令会根据代码的位置(在C#或F#中)而更改。

Please see my answer below. 请参阅下面的答案。 If you have any other suggestions, please let me know. 如果您有任何其他建议,请告诉我。 Thank you. 谢谢。

Inside a C# document, I can use ListModule.OfSeq and .ToList() , like this: 在C#文档中,我可以使用ListModule.OfSeq.ToList() ,如下所示:

// Currently inside a C# document
var CS_list = new List<int> {1,2,3}; 
var FS_list = ListModule.OfSeq(CS_List); // Microsoft.FSharp.Collections.ListModule
var CS_converted_back = FS_List.ToList();

Inside an F# document, I can use Seq.toList and ResizeArray<_> , like this: 在F#文档中,我可以使用Seq.toListResizeArray<_> ,如下所示:

// Currently inside an F# document
let FS_list = [1;2;3]
let CS_list = ResizeArray<int> FS_list // System.Collections.Generic.List
let FS_converted_back = Seq.toList CS_list

If I made any mistakes, or if I miss out something obvious, please let me know. 如果我犯了任何错误,或者我错过了一些明显的错误,请告诉我。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM