В этом случае тип свойства FSharpList<FSharpList<MyModule.X>>
Так что вам придется сопоставить каждый внутренний FSharpList с IList<T>
, а затем материализовать полученную последовательность в список (списков).
Это будет выглядеть следующим образом:
IList<IList<MyModule.X>> list = MyModule.l
.Select(inner => (IList<MyModule.X>) inner.ToList())
.ToList();
Вам действительно нужны все эти точные преобразования?Разве тот факт, что коллекция уже IEnumerable<IEnumerable<T>>
достаточно хорош?На самом деле, FSharpList<T>
сам по себе довольно полезный тип из C #, поэтому я бы держался подальше от этих преобразований, если бы в этом не было крайней необходимости.
EDIT :
Если вы простонужно перебрать элементы, все что вам нужно это цикл:
foreach(var innerList in MyModule.l)
{
foreach(var item in innerList)
{
Console.WriteLine(item.valuex);
}
}