Joh*_*ger 2 .net c# f# icomparable base-class-library
我想Version在F#中对一系列对象进行排序:
let maxVersion =
versions
|> Seq.max (fun version -> version)
Run Code Online (Sandbox Code Playgroud)
编译器生成以下错误消息:
类型'(seq - >'a)'不支持'比较'约束.例如,它不支持"System.IComparable"接口
当我在Visual Studio中点击F12来查看Version它的元数据时说Version它只实现了ICloneable,但没有实现IComparable.但是,当我访问sourceof.net时,它表示它实现的功能IComparable与其他一些接口一样.
F#是否使用不同版本的.NET框架?
Gus*_*Gus 10
错误消息告诉您(seq->'a)没有实现IComparable哪个是真的,因为它(seq->'a)是一个函数,而不是一个序列.
如果你看Seq.max它的签名,它只需要序列作为参数.删除lambda (fun version -> version)它应该没问题.
否则,如果要为排序应用密钥生成器函数,请改用 Seq.maxBy