C# 如何将列表从C传递到F?

C# 如何将列表从C传递到F?,c#,f#,C#,F#,我知道f名单和c名单不一样。我需要做什么才能将int列表从c#应用程序传递到f#库?我希望能够在数据进入f代码后对其使用模式匹配。您可以从f项目中引用C程序集。通过引用的程序集公开列表。您可以使用 Seq.toList : IEnumerable<'a> -> list<'a> Seq.toList:IEnumerable 转换任何IEnumerable;这只是一个坏主意。你可以传递一个整数序列-它基本上是支持IEnumerable的任何东西 FSharp代码:

我知道f名单和c名单不一样。我需要做什么才能将int列表从c#应用程序传递到f#库?我希望能够在数据进入f代码后对其使用模式匹配。

您可以从f项目中引用C程序集。通过引用的程序集公开列表。

您可以使用

Seq.toList : IEnumerable<'a> -> list<'a>
Seq.toList:IEnumerable

转换任何
IEnumerable
;这只是一个坏主意。

你可以传递一个整数序列-它基本上是支持
IEnumerable

的任何东西

FSharp代码:

let rec FindMaxInList list = 
   match list with
   | [x] -> x
   | h::t -> max h (FindMaxInList t)
   | [] -> failwith "empty list"

let rec FindMax ( array : ResizeArray<int>) =
   let list = List.ofSeq(array)
   FindMaxInList list
    List<int> myInts = new List<int> { 5, 6, 7 };
    int max = FSModule.FindMax(myInts);
let rec FindMaxInList list=
匹配列表
|[x]->x
|h::t->最大h(FindMaxInList t)
|[]->故障与“空列表”
let rec FindMax(数组:ResizeArray)=
let list=list.ofSeq(数组)
FindMaxInList列表
c代码:

let rec FindMaxInList list = 
   match list with
   | [x] -> x
   | h::t -> max h (FindMaxInList t)
   | [] -> failwith "empty list"

let rec FindMax ( array : ResizeArray<int>) =
   let list = List.ofSeq(array)
   FindMaxInList list
    List<int> myInts = new List<int> { 5, 6, 7 };
    int max = FSModule.FindMax(myInts);
List myInts=新列表{5,6,7};
int max=FSModule.FindMax(myInts);

只是想知道,为什么一个人不想编写一些在C#list上运行的活动模式呢?