c# - parse - programa para convertir temperaturas
¿Qué puedo hacer para pasar una lista de C#a F#? (4)
Sé que la lista f # no es la misma en la lista c #. ¿Qué debo hacer para poder pasar una lista de entradas de la aplicación ac # a una biblioteca f #? Me gustaría poder utilizar la coincidencia de patrones en los datos una vez que estén en el código f #.
Puede hacer referencia a ensamblajes C # desde proyectos F #. Exponga su lista a través de un ensamblaje al que se hace referencia.
Puede pasar una secuencia de entradas: básicamente es cualquier cosa que admita IEnumerable<int>
.
Así es como terminé haciéndolo.
El código de 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
El código c Sharp:
List<int> myInts = new List<int> { 5, 6, 7 };
int max = FSModule.FindMax(myInts);
Puedes usar
Seq.toList : IEnumerable<''a> -> list<''a>
para convertir cualquier IEnumerable<''a>
seq
en una lista F #. Tenga en cuenta que las listas F # son inmutables; si desea trabajar con la lista mutable, no necesita hacer nada especial, pero no podrá usar la coincidencia de patrones. O, más bien, puede definir patrones activos para System.Collections.Generic.List<''a>
; es solo una mala idea