EB
Size: a a a
EB
МП
list<obj>, по этому не проканает. На самом деле, я там вообще сериализую информацию о типе этого списка, в духеtype ValueType =
| Unit
| Integer
| Float
| String
| Bool
| List of valueType: ValueTypeМП
Head просто для примера.EB
МП
МП
EB
МП
EB
EB
МП
var lst1 = new FSharpList<int>(3, null);
var lst2 = new FSharpList<int>(2, lst1);
var lst3 = new FSharpList<int>(1, lst2);
Console.WriteLine(lst3);
// Выводит [1; 2]
МП
МП
IC
lst1 создаёшь неправильным способом. Он у тебя в итоге пустой. Пихай вторым аргументом FSharpList<int>.Empty.IC
МП
МП
IC
МП
let mutableListType = typedefof<list<_>>
let mutableListType' = mutableListType.MakeGenericType(sourceList.Head.GetType())
let emptyProp = mutableListType'.GetProperty("Empty")
let consMethod = mutableListType'.GetMethod("Cons")
let mutable typedList = emptyProp.GetValue(null)
for item in sourceList do
typedList <- consMethod.Invoke(null, [| item; typedList |])
typedList