I am trying to compare objects in an object[]
that are of a single type (unknown at runtime). They are of System.string
, int
, decimal
, Datetime
, or bool
types.
Is there a way to compare two of these objects to determine if one is greater or less than another without having to cast them into their appropriate type first?
The types in question all implement IComparable, so, if being able to compare elements is an intrinsic requirement of your array, you could declare it as an IComparable[]
instead.
All of those types implement IComparable
interface, so you can cast your objects to IComparable
(or just keep an IComparable[]
array instead of object[]
). Then you can use
CompareTo(object x)
method.
All of the types you mention implements IComparable
, so you can use IComparable.CompareTo
. As an example:
object[] ints = new object[] { 2, 1, 3};
object n = 2;
var compareResults = ints.OfType<IComparable>().Select(c => c.CompareTo(n));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With