我想对一个序列进行排序Version
F# 中的对象:
let maxVersion =
versions
|> Seq.max (fun version -> version)
编译器产生以下错误消息:
类型“(seq -> 'a)”不支持“比较”约束。例如,它不支持“System.IComparable”接口
当我在 Visual Studio 中按 F12 查看元数据时Version
它说Version
只实现ICloneable
, 但不是IComparable
。但是当我去来源网 http://referencesource.microsoft.com/#mscorlib/system/version.cs,0c15515dfe051d35它说它实现了IComparable
以及其他一些接口。
F# 是否使用不同版本的 .NET 框架?
错误消息告诉你(seq->'a)
不实施IComparable
这是真的,因为(seq->'a)
是一个函数,而不是一个序列。
如果你看一下签名Seq.max
它只需要序列作为参数。
删除 lambda(fun version -> version)
应该没问题。
否则,如果您想应用键生成器函数进行排序,请改用Seq.maxBy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)