C # порядок списка объектов без использования дополнительной памяти - PullRequest
0 голосов
/ 20 сентября 2018

при упорядочении списков в C # Я нашел эту старую дискуссию о переполнении стека: Как отсортировать список по свойству объекта

Я сам использовал для упорядочения списков одинаковыекак ответ с наибольшим количеством голосов в приведенной выше ссылке:

List<Order> newList = oldList.OrderBy(o=>o.SomeProperty).ToList();

, не думая, что это создает новый список в памяти.Следовательно, второй ответ с наибольшим количеством голосов в приведенной выше ссылке предлагает себя как лучшее решение (.Сортировать с Сравнением).

Мой вопрос, если изменение первого решения позволит избежать дублирования памяти:

oldList = oldList.OrderBy(o=>o.SomeProperty).ToList();

или это снова создает новый список в памяти?

примечание: я уже проверял и упорядочение работает таким образом, но я не знаю, как проверить использование (дополнительной / новой) памяти.

Спасибо, М

1 Ответ

0 голосов
/ 20 сентября 2018
oldList = oldList.OrderBy(o=>o.SomeProperty).ToList();

Создает новый список в памяти и присваивает ему ссылку oldList.У вас будет два списка в памяти, один отсортированный и один несортированный.Несортированный список будет храниться в памяти до тех пор, пока на него не останется никаких других ссылок.В этот момент список пригоден для сбора мусора, и память в конечном итоге будет освобождена или освобождена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...