¿Por qué SequenceEqual for List <T> devuelve falso?

Hola tengo algunos problemas consecuenciaEqual cuando tengo una situación como esta:

Sentence s1 = new Sentence { Text = "Hi", Order = 1 };
Sentence s2 = new Sentence { Text = "Hello", Order = 2 };
List<Sentence> list1 = new List<Sentence> { s1, s2 };
List<Sentence> list2 = new List<Sentence> { s1, s2 };

y esto funciona bien

bool equal = list1.SequenceEqual(list2);

y devuelvetrue;

pero cuando tengo algún método que devuelveList<Sentence> por ejemplo:

public List<Sentence> Getall()
    {
        Sentence s1 = new Sentence { Text = "Hi", Order = 1 };
        Sentence s2 = new Sentence { Text = "Hello", Order = 2 };

        return new List<Sentence> { s1, s2 };
    }

y úsalo así:

List<Sentence> list1 = Getall();
List<Sentence> list2 = Getall();

y luego simplemente, compruébalo

bool equal = list1.SequenceEqual(list2);

devuelve 'falso', por favor dime por qué? ¿Y cómo hacer que funcione?

Respuestas a la pregunta(3)

Su respuesta a la pregunta