tgoop.com/csharp_gepard/47
Create:
Last Update:
Last Update:
Инициализация List #память #бенч
А вот мы решили создать List из уже существующего массива. Какой же способ выбрать, если нам важны наносекунды?
Ответ: любой.
Но если наносекунды нам действительно важны, то мы будем выбирать передачу массива в конструктор List'a. Внутри есть попытка каста IEnumerable
к ICollection
, что позволяет создать внутренний массив нужного размера. Именно его расширение является замедляющим фактором и причиной аллокации при вызове банального метода Add.
Инициализатор, конечно же, является синтаксическим сахаром многократного вызова метода Add (это отчётливо видно в IL).
BY C# Heppard

Share with your friend now:
tgoop.com/csharp_gepard/47