Erro do compilador C2865
'function' : comparação ilegal para handle_or_pointer
Você pode comparar referências a Classes e Structs ou tipos de referência gerenciados somente para igualdade para ver se eles se referem ao mesmo objeto (==) ou a objetos diferentes (!=).
Você não pode compará-los para ordenação porque o runtime do .NET pode mover objetos gerenciados a qualquer momento, alterando o resultado do teste.