The < (less than), > (greater than), <= (less than or equal), and >= (greater than or equal) comparison, also known as relational, operators compare their operands. All integral and floating-point numeric types support those operators.
ms.custom: "updateeachrelease"
The C# language reference documents the most recently released version of the C# language. It also contains initial documentation for features in public previews for the upcoming language release.
The documentation identifies any feature first introduced in the last three versions of the language or in current public previews.
The char type also supports comparison operators. When you use char operands, the corresponding character codes are compared.
Enumeration types also support comparison operators. For operands of the same enum type, the corresponding values of the underlying integral type are compared.
The == and != operators check if their operands are equal or not.
Less than operator <
The < operator returns true if its left-hand operand is less than its right-hand operand, false otherwise:
sample · csharpdocs/csharp/language-reference/operators/snippets/shared/ComparisonOperators.csLess
namespace operators;
public static class ComparisonOperators
{
public static void Examples()
{
Console.WriteLine("--- >");
Greater();
Console.WriteLine("--- <");
Less();
Console.WriteLine("--- >=");
GreaterOrEqual();
Console.WriteLine("--- <=");
LessOrEqual();
}
private static void Greater()
{
// <SnippetGreater>
Console.WriteLine(7.0 > 5.1); // output: True
Console.WriteLine(5.1 > 5.1); // output: False
Console.WriteLine(0.0 > 5.1); // output: False
Console.WriteLine(double.NaN > 5.1); // output: False
Console.WriteLine(double.NaN <= 5.1); // output: False
// </SnippetGreater>
}
private static void Less()
{
// <SnippetLess>
Console.WriteLine(7.0 < 5.1); // output: False
Console.WriteLine(5.1 < 5.1); // output: False
Console.WriteLine(0.0 < 5.1); // output: True
Console.WriteLine(double.NaN < 5.1); // output: False
Console.WriteLine(double.NaN >= 5.1); // output: False
// </SnippetLess>
}
private static void GreaterOrEqual()
{
// <SnippetGreaterOrEqual>
Console.WriteLine(7.0 >= 5.1); // output: True
Console.WriteLine(5.1 >= 5.1); // output: True
Console.WriteLine(0.0 >= 5.1); // output: False
Console.WriteLine(double.NaN < 5.1); // output: False
Console.WriteLine(double.NaN >= 5.1); // output: False
// </SnippetGreaterOrEqual>
}
private static void LessOrEqual()
{
// <SnippetLessOrEqual>
Console.WriteLine(7.0 <= 5.1); // output: False
Console.WriteLine(5.1 <= 5.1); // output: True
Console.WriteLine(0.0 <= 5.1); // output: True
Console.WriteLine(double.NaN > 5.1); // output: False
Console.WriteLine(double.NaN <= 5.1); // output: False
// </SnippetLessOrEqual>
}
}Greater than operator >
The > operator returns true if its left-hand operand is greater than its right-hand operand, false otherwise:
sample · csharpdocs/csharp/language-reference/operators/snippets/shared/ComparisonOperators.csGreater
namespace operators;
public static class ComparisonOperators
{
public static void Examples()
{
Console.WriteLine("--- >");
Greater();
Console.WriteLine("--- <");
Less();
Console.WriteLine("--- >=");
GreaterOrEqual();
Console.WriteLine("--- <=");
LessOrEqual();
}
private static void Greater()
{
// <SnippetGreater>
Console.WriteLine(7.0 > 5.1); // output: True
Console.WriteLine(5.1 > 5.1); // output: False
Console.WriteLine(0.0 > 5.1); // output: False
Console.WriteLine(double.NaN > 5.1); // output: False
Console.WriteLine(double.NaN <= 5.1); // output: False
// </SnippetGreater>
}
private static void Less()
{
// <SnippetLess>
Console.WriteLine(7.0 < 5.1); // output: False
Console.WriteLine(5.1 < 5.1); // output: False
Console.WriteLine(0.0 < 5.1); // output: True
Console.WriteLine(double.NaN < 5.1); // output: False
Console.WriteLine(double.NaN >= 5.1); // output: False
// </SnippetLess>
}
private static void GreaterOrEqual()
{
// <SnippetGreaterOrEqual>
Console.WriteLine(7.0 >= 5.1); // output: True
Console.WriteLine(5.1 >= 5.1); // output: True
Console.WriteLine(0.0 >= 5.1); // output: False
Console.WriteLine(double.NaN < 5.1); // output: False
Console.WriteLine(double.NaN >= 5.1); // output: False
// </SnippetGreaterOrEqual>
}
private static void LessOrEqual()
{
// <SnippetLessOrEqual>
Console.WriteLine(7.0 <= 5.1); // output: False
Console.WriteLine(5.1 <= 5.1); // output: True
Console.WriteLine(0.0 <= 5.1); // output: True
Console.WriteLine(double.NaN > 5.1); // output: False
Console.WriteLine(double.NaN <= 5.1); // output: False
// </SnippetLessOrEqual>
}
}Less than or equal operator <=
The <= operator returns true if its left-hand operand is less than or equal to its right-hand operand. Otherwise, it returns false:
sample · csharpdocs/csharp/language-reference/operators/snippets/shared/ComparisonOperators.csLessOrEqual
namespace operators;
public static class ComparisonOperators
{
public static void Examples()
{
Console.WriteLine("--- >");
Greater();
Console.WriteLine("--- <");
Less();
Console.WriteLine("--- >=");
GreaterOrEqual();
Console.WriteLine("--- <=");
LessOrEqual();
}
private static void Greater()
{
// <SnippetGreater>
Console.WriteLine(7.0 > 5.1); // output: True
Console.WriteLine(5.1 > 5.1); // output: False
Console.WriteLine(0.0 > 5.1); // output: False
Console.WriteLine(double.NaN > 5.1); // output: False
Console.WriteLine(double.NaN <= 5.1); // output: False
// </SnippetGreater>
}
private static void Less()
{
// <SnippetLess>
Console.WriteLine(7.0 < 5.1); // output: False
Console.WriteLine(5.1 < 5.1); // output: False
Console.WriteLine(0.0 < 5.1); // output: True
Console.WriteLine(double.NaN < 5.1); // output: False
Console.WriteLine(double.NaN >= 5.1); // output: False
// </SnippetLess>
}
private static void GreaterOrEqual()
{
// <SnippetGreaterOrEqual>
Console.WriteLine(7.0 >= 5.1); // output: True
Console.WriteLine(5.1 >= 5.1); // output: True
Console.WriteLine(0.0 >= 5.1); // output: False
Console.WriteLine(double.NaN < 5.1); // output: False
Console.WriteLine(double.NaN >= 5.1); // output: False
// </SnippetGreaterOrEqual>
}
private static void LessOrEqual()
{
// <SnippetLessOrEqual>
Console.WriteLine(7.0 <= 5.1); // output: False
Console.WriteLine(5.1 <= 5.1); // output: True
Console.WriteLine(0.0 <= 5.1); // output: True
Console.WriteLine(double.NaN > 5.1); // output: False
Console.WriteLine(double.NaN <= 5.1); // output: False
// </SnippetLessOrEqual>
}
}Greater than or equal operator >=
The >= operator returns true if its left-hand operand is greater than or equal to its right-hand operand. Otherwise, it returns false:
sample · csharpdocs/csharp/language-reference/operators/snippets/shared/ComparisonOperators.csGreaterOrEqual
namespace operators;
public static class ComparisonOperators
{
public static void Examples()
{
Console.WriteLine("--- >");
Greater();
Console.WriteLine("--- <");
Less();
Console.WriteLine("--- >=");
GreaterOrEqual();
Console.WriteLine("--- <=");
LessOrEqual();
}
private static void Greater()
{
// <SnippetGreater>
Console.WriteLine(7.0 > 5.1); // output: True
Console.WriteLine(5.1 > 5.1); // output: False
Console.WriteLine(0.0 > 5.1); // output: False
Console.WriteLine(double.NaN > 5.1); // output: False
Console.WriteLine(double.NaN <= 5.1); // output: False
// </SnippetGreater>
}
private static void Less()
{
// <SnippetLess>
Console.WriteLine(7.0 < 5.1); // output: False
Console.WriteLine(5.1 < 5.1); // output: False
Console.WriteLine(0.0 < 5.1); // output: True
Console.WriteLine(double.NaN < 5.1); // output: False
Console.WriteLine(double.NaN >= 5.1); // output: False
// </SnippetLess>
}
private static void GreaterOrEqual()
{
// <SnippetGreaterOrEqual>
Console.WriteLine(7.0 >= 5.1); // output: True
Console.WriteLine(5.1 >= 5.1); // output: True
Console.WriteLine(0.0 >= 5.1); // output: False
Console.WriteLine(double.NaN < 5.1); // output: False
Console.WriteLine(double.NaN >= 5.1); // output: False
// </SnippetGreaterOrEqual>
}
private static void LessOrEqual()
{
// <SnippetLessOrEqual>
Console.WriteLine(7.0 <= 5.1); // output: False
Console.WriteLine(5.1 <= 5.1); // output: True
Console.WriteLine(0.0 <= 5.1); // output: True
Console.WriteLine(double.NaN > 5.1); // output: False
Console.WriteLine(double.NaN <= 5.1); // output: False
// </SnippetLessOrEqual>
}
}Operator overloadability
You can overload the <, >, <=, and >= operators in a user-defined type.
If you overload one of the < or > operators, you must overload both < and >. If you overload one of the <= or >= operators, you must overload both <= and >=.
C# language specification
For more information, see the Relational and type-testing operators section of the C# language specification.