我是初学F#程序员.我知道,F#是功能性的,并喜欢在那里的数据是通过功能,如管道的样式map和iter功能上集合.仍然,LINQ表达式提供了一种替代的,高度可读的方法来操作集合; 但是,我不确定它是否更为迫切,并且无法使用功能语言.
例如,没有LINQ:
let listOfPrimes n =
[1UL..n]
|> List.choose (fun i -> match i with
| i when isPrime i -> Some i
| _ -> None)
Run Code Online (Sandbox Code Playgroud)
使用LINQ时,我们可以:
let listOfPrimes n =
query {
for i in [1UL..n] do
where (isPrime i)
select i
}
|> List.ofSeq
Run Code Online (Sandbox Code Playgroud)
我注意到在使用LINQ时我们需要将结果序列转换为列表.那么,实际的性能差异是什么?在实际的数据库查询之外,LINQ风格上是不受欢迎的吗?何时使用该场景之外的查询来操作集合数据?