Por que SequenceEqual para List <T> retorna false?

Oi eu tenho alguns problemas comsequenceEqual quando tenho uma situação assim:

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 };

e isso funciona bem

bool equal = list1.SequenceEqual(list2);

e retornatrue;

mas quando eu tenho algum método que retornaList<Sentence> por exemplo:

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 };
    }

e usá-lo assim:

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

e depois simplesmente, verifique

bool equal = list1.SequenceEqual(list2);

ele retorna "falso", por favor me diga por quê? e como fazer funcionar?

questionAnswers(3)

yourAnswerToTheQuestion