# Calculate return value for sort by int

17 Jan 2013 17 Jan 2013 1 min read

Most programming languages (such as C#, Java, …) allow you to sort lists. Most of them also allow you to specify a sorting function so that you can customize the sort order. These functions usually take parameters `a` and `b` and define the return value as follows:

Return value if
less than zero `a` is less than `b`
equals zero `a` is equal to `b`
greater than zero `a` is greater than `b`

Usually you would do something like this (code in C#):

``````
int Compare(int a, int b) {
if (a < b) {
return -1;
}
else if (a > b) {
return 1;
}
else {
return 0;
}
}
``````

However, when comparing `int` values, there’s a much quicker way to do this:

``````
int Compare(int a, int b) {
return a - b;
}
``````

That’s it.

Note

Care should be taken if `a` and/or `b` can come close to `int.MaxValue` or `int.MinValue`. In this case the results may not be what one wants (like if `a = int.MinValue` and `b = 1` then the result will be `int.MaxValue` which is wrong).