Object. compareto (Object)用于未知数据类型
本文关键字:Object 未知 数据类型 用于 compareto | 更新日期: 2023-09-27 18:15:23
我试图比较单一类型(运行时未知)的object[]
中的对象。System.string
、int
、decimal
、Datetime
、bool
类型。
是否有一种方法可以比较这两个对象,以确定一个比另一个大或小,而不必先将它们转换为适当的类型?
所讨论的类型都实现了icomcomparable,因此,如果能够比较元素是数组的内在要求,则可以将其声明为IComparable[]
。
所有这些类型都实现了IComparable
接口,因此您可以将对象强制转换为IComparable
(或者仅保留IComparable[]
数组而不是object[]
)。然后你可以使用CompareTo(object x)
方法。
您提到的所有类型都实现了IComparable
,因此您可以使用IComparable.CompareTo
。例如:
object[] ints = new object[] { 2, 1, 3};
object n = 2;
var compareResults = ints.OfType<IComparable>().Select(c => c.CompareTo(n));