【发布时间】:2018-01-20 03:57:48
【问题描述】:
我目前有两个对象(相同类型),它们可以表示任何原始值,例如字符串、整数、日期时间等。
var valueX = ...;
var valueY = ...;
Atm 我像这样在字符串级别上比较它们
var result = string.Compare(fieldValueX.ToString(), fieldValueY.ToString(), StringComparison.Ordinal);
但我需要在类型级别上比较它们(如果它们恰好是整数,则为整数
int i = 0;
int j = 2;
i.CompareTo(j);
,作为日期,如果它们恰好是日期等),类似于
object.Compare(x,y);
以同样的方式返回 -1,0,1。有什么方法可以实现?
【问题讨论】:
-
其中一个可以为空吗?如果没有,你可以使用
((IComparable)x).CompareTo(y)。 -
Object.Equal不起作用吗?它将返回bool而不是int -
But I need to compare them on type level (as ints if those happen to be ints...Minimal, Complete, and Verifiable example,以便更好地说明您的问题。