.NET Почему IEnumerable.ToList() на существующем List создает новый массив

Просто из любопытства, почему вызов IEnumerable.ToList() на существующем List не возвращает тот же экземпляр? То же самое относится к IEnuerable.ToArray(). Разве это не лучше с точки зрения потребления памяти?

Я провел следующий быстрый тест:

  var things= new List<Thing>( new [] {new Thing(), new Thing()});
        Console.WriteLine(things.GetHashCode());

        things= things.ToList();
        Console.WriteLine(things.GetHashCode());

И я получаю разные экземпляры объектов. Почему не просто одинаковые экземпляры?

7
задан Klaus Nji 28 November 2011 в 23:06
поделиться