如何在F#中对查询进行排序?

时间:2018-03-12 14:38:23

标签: casting f# sequence

所以我有query喜欢这个

let query = 
    query {
        for person in people do
        select person
    }

我想拥有它sequenced

let sequence : seq<Person> = query

但我找不到任何有关如何操作的信息,也许我在使用搜索引擎方面变得不好。

我使用|> seq.ofListToList()之类的内容进行意外的类型编译。

  

预计表达式的类型为seq<Person>,但此处的类型为Generic.List<Person>

1 个答案:

答案 0 :(得分:4)

query表达式的结果类型为IQueryable<_>,这是IEnumerable<_>的子类型(seq<_>是同义词),因此您只需更改类型:

let mySeq : seq<_> = myQuery

或者,如果您想避免使用类型注释,请使用内置的seq function,它执行相同的操作:

let mySeq = seq myQuery