Ordenar una matriz de objetos en C # (equivalente a std :: sort)

¿Cómo puedo ordenar la matriz de cadenas ascendentes en C #? Quiero usar algo como std :: sort en C ++:

 std::sort(population.begin(), population.end())

Necesito ordenar la lista de obsequios. Los objetos en la lista son instancias de la clase Genome. Operador sobrecargado< y operador> en esa clase

 class Genome
{
    public List<double> weights;
    public double fitness;

    public Genome()
    {
        fitness = 0.0;
        weights = new List<double>();
    }

    public Genome(List<double> weights, double fitness) {
        this.weights = weights;
        this.fitness = fitness;
    }


    public static bool operator <(Genome lhs, Genome rhs)
    {
        return (lhs.fitness < rhs.fitness);
    }

    public static bool operator >(Genome lhs, Genome rhs) {
        return (lhs.fitness > rhs.fitness);
    }

}

Así se declara la población:

List<Genome> population = new List<Genome>();

¿Cómo puedo ordenar esta matriz? ¿Se puede usar el operador operador sobrecargado <como en C ++?

Respuestas a la pregunta(3)

Su respuesta a la pregunta