¿Cuál es el propósito de "() =>" en lambda c #

He estado tratando de resolver esto y realmente me está molestando. Tengo un código que se ve así

static T MyFunction<T>(Func<T> action, int i, int i2)
{
    ...some code here
}

Cuando necesito llamar a este código, probé esto

var result = MyFunction<List<string>>(MethodThatReturnsListofString(int number), 1,2)

No indica que la mejor sobrecarga tiene argumentos no válidos. Pero cuando intenté lo siguiente

var result = MyFunction<List<string>>(() => MethodThatReturnsListofString(int number), 1,2)

Funciona bien. ¿Cuál es la función de "() =>" en este caso? Pensé que () no podía usarse con métodos que requerían más de 0 argumentos.

Respuestas a la pregunta(4)

Su respuesta a la pregunta