Как я могу работать с IEnumerable в F #?

Существует довольно много устаревших интерфейсов, которые получают коллекции объектов в виде простого IEnumerable. Обычно в С# кастинг объектов должен выполняться foreach(CertainTypeWeSureItemIs item in items) на любой тип, который они хотят по ходу. IEnumerable не переводит непосредственно в последовательность. Обернуть его в seq { for x in xs -> x } не очень помогает, потому что он получает seq{obj}. Итак, как мне это сделать в F #?

Ответ 1

Используйте Seq.cast<T>:

let al = new System.Collections.ArrayList()
al.Add(1) |> ignore
al.Add(2) |> ignore
al |> Seq.cast<int> |> Seq.iter(printf "%i")