Zachowanie listy <T> .Sort w .NET 4.5 zmieniony z .NET 4.0?

Mam następujący test wewnątrz projektu kierowanego na .NET 4.0:

[TestFixture]
public class Donkey
{
    [Test]
    public void TestListSorting()
    {
        var expected = new[]
                    {
                                MockRepository.GenerateStub<IComparable>(),
                                MockRepository.GenerateStub<IComparable>()
                    };

        var sorted = new List<IComparable>(expected);

        CollectionAssert.AreEqual(expected, sorted);
        sorted.Sort();
        CollectionAssert.AreEqual(expected, sorted);

    }
}

Jeśli uruchomię go na komputerze z zainstalowanym tylko .NET 4.0, nie powiedzie się. Jeśli uruchomię go na maszynie z zainstalowanym tylko .NET 4.5, to przechodzi.

Zakładam, że w .NET 4.5 implementacjaSort został zmieniony, aby zachować porządek podczas sortowania listy obiektów, z których każdy powraca0 zCompareTo.

Teraz odłóż na bok oczywisty szaleństwo tego testu. Wiem, że to szalone poleganie na tego rodzaju zachowaniach.

Pewno to jest przełomowa zmiana? Nie znajduje się na liścieta strona o kompatybilności między .NET 4.0 i 4.5.

Czy jest ku temu powód? Czy czegoś mi brakuje? Czy jest inna strona, która pokazuje rzeczywiste zmiany? Czy powinienem po prostu usiąść i przestać panikować?

questionAnswers(6)

yourAnswerToTheQuestion