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