Tuples automatically implement IStructuralComparable
and IStructuralEquatable
, among other things. This allows tuples to be compared and sorted right out of the box. From Bill McCarthy's article in December 2009 edition of Visual Studio Magazine, "Types and Tuples in .NET 4":
Although tuples may look simple and nondescript, they do provide strong typing and important comparison and equality functionality. Tuples are useful across method, class or even machine boundaries.
By putting your data type into a tuple, even of only one element, you are guaranteed immutability, equatability, and comparability. For tuples consisting of only one element, the main benefit of using a tuple is going to be immutability: once the tuple is created, it's data can never change for the life of the tuple.