1551 {
1552 if (typeof(T) == typeof(byte))
1553 {
1554 return (byte)(object)left < (byte)(object)right;
1555 }
1556 if (typeof(T) == typeof(sbyte))
1557 {
1558 return (sbyte)(object)left < (sbyte)(object)right;
1559 }
1560 if (typeof(T) == typeof(ushort))
1561 {
1562 return (ushort)(object)left < (ushort)(object)right;
1563 }
1564 if (typeof(T) == typeof(short))
1565 {
1566 return (short)(object)left < (short)(object)right;
1567 }
1568 if (typeof(T) == typeof(uint))
1569 {
1570 return (uint)(object)left < (uint)(object)right;
1571 }
1572 if (typeof(T) == typeof(int))
1573 {
1574 return (int)(object)left < (int)(object)right;
1575 }
1576 if (typeof(T) == typeof(ulong))
1577 {
1578 return (ulong)(object)left < (ulong)(object)right;
1579 }
1580 if (typeof(T) == typeof(long))
1581 {
1582 return (long)(object)left < (long)(object)right;
1583 }
1584 if (typeof(T) == typeof(float))
1585 {
1586 return (float)(object)left < (float)(object)right;
1587 }
1588 if (typeof(T) == typeof(double))
1589 {
1590 return (double)(object)left < (double)(object)right;
1591 }
1592 if (typeof(T) == typeof(UIntPtr))
1593 {
1594 return (nuint)(
UIntPtr)(
object)left < (nuint)(UIntPtr)(object)right;
1595 }
1596 if (typeof(T) == typeof(IntPtr))
1597 {
1598 return (nint)(
IntPtr)(
object)left < (nint)(IntPtr)(object)right;
1599 }
1600 throw new NotSupportedException(SR.Arg_TypeNotSupported);
1601 }