我正在研究一种二进制搜索算法,它具有以下参数:
现在,当我传递这些论点时:
它说 int 类型不能用作参数 F(我的印象是泛型类型与正在传递的类型无关)并且没有从 int 到 IComparable 的“装箱”转换。
我试图做的事情:基本上,我希望这个方法接受可以是各种数字类型(整数、双精度等)的搜索键,所以在通用方法中我试图声明两种类型。
关于此代码: func 委托代表对象的属性,即 car.Name (string)、car.Wheels(int),它们是不同类型的。我有点希望根据正在传递的 propertyFields 类型以某种方式推断键数据类型,但这似乎太复杂了,所以我尝试让它 F Key 接受各种类型,并确保我正在传递正确的类型。
我不知道这一切听起来是否令人困惑,但如果您对我的任何代码有疑问,请随时提问。
编辑:当我调用 BinarySearch 方法时发生错误。
编辑2:对于propertyField,我将其作为参数传递:c => c.Longitude(或任何其他对象属性)。