Warum gibt SequenceEqual for List <T> false zurück?

Hallo, ich habe einige Probleme mitsequenceEqual wenn ich so eine situation habe:

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

und das funktioniert gut

bool equal = list1.SequenceEqual(list2);

und kehrt zurücktrue;

aber wenn ich eine Methode habe, die zurückkehrtList<Sentence> zum Beispiel:

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

und benutze es so:

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

und dann einfach überprüfen

bool equal = list1.SequenceEqual(list2);

es gibt 'false' zurück, bitte sag mir warum? und wie funktioniert es?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage