简体   繁体   中英

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

What can I do to pass a list from C# to F#?

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. The code/commands for doing so changes depending on where is your code (in C# or 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:

// 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:

// 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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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