F#LazyList - > IList的

时间:2013-10-28 15:25:07

标签: f# lazylist

我正在创建一个将由C#代码使用的模块,所以我宁愿不直接返回LazyList<>。如果我这样做,C#必须引用FSharp.PowerPack,这似乎很奇怪。

所以我宁愿返回IList<>,但当我尝试做类似的事情时

let x = LazyList.ofSeq {0..10}
let y = x :> IList<int32>

然而,这给了我错误:

The type 'LazyList<int> is not compatible with the type 'IList<int>'

这让我相信LazyList<>不会implement IList<>。这是真的吗?

我错过了什么?

1 个答案:

答案 0 :(得分:4)

确实,LazyList没有实现IList接口。它虽然实现了IEnumerable。

[<Sealed>]
type LazyList<'T> =
   interface IEnumerable<'T>
   interface System.Collections.IEnumerable