Size: a a a

2021 February 17

P

Phantom in unity3d.ru
Alexander P
Array реализует IEnumerable
И?
источник

P

Phantom in unity3d.ru
Это не связно с List.Add
источник

AP

Alexander P in unity3d.ru
и то, что ошибки в сказанном нет
источник

AP

Alexander P in unity3d.ru
прочитай внимательно, о чем идет речь
источник

P

Phantom in unity3d.ru
Alexander P
прочитай внимательно, о чем идет речь
Про то, как List.Add работает, нет?
источник

AP

Alexander P in unity3d.ru
Phantom
Про то, как List.Add работает, нет?
про то, как прикрутить Add к массиву, а не List
источник

P

Phantom in unity3d.ru
Alexander P
про то, как прикрутить Add к массиву, а не List
"Лист при добавлении аллоцирует память под новый IEnumerable + 1, копирует данные туда и последний элемент сеттает на указанный."
источник

P

Phantom in unity3d.ru
Phantom
"Лист при добавлении аллоцирует память под новый IEnumerable + 1, копирует данные туда и последний элемент сеттает на указанный."
Вот не могу понять, причем здесь IEnumerable
источник

PD

Paul Dyatlov in unity3d.ru
Phantom
Причем тут IEnumerable?
При том, что ты можешь сделать то же самое для массива
источник

PD

Paul Dyatlov in unity3d.ru
И массив, и лист реализуют IEnumerable, и суть в том, что это подойдет для обоих коллекций
источник

P

Phantom in unity3d.ru
Paul Dyatlov
При том, что ты можешь сделать то же самое для массива
Из твоего сообщения, я понял что ты описывал работу List.Add
источник

P

Phantom in unity3d.ru
Если это не так, то тогда не правильно понял
источник

P

Phantom in unity3d.ru
Если это так, то там по другому работает
источник

PD

Paul Dyatlov in unity3d.ru
Phantom
Если это так, то там по другому работает
Так и работает
источник

P

Phantom in unity3d.ru
Paul Dyatlov
Так и работает
Там проверяется есть ли свободное место в массиве, если нет, то аллоцируется новый с размером в два раза больше исходного, копируется из исходного в новый, и добавляется
источник

DD

Den Dev in unity3d.ru
Phantom
Из твоего сообщения, я понял что ты описывал работу List.Add
Сказали же, что есть дефолтное решение в linq
источник

P

Phantom in unity3d.ru
Den Dev
Сказали же, что есть дефолтное решение в linq
Ну это да, я просто не понял к чему там IEnumerable
источник

PD

Paul Dyatlov in unity3d.ru
Phantom
Там проверяется есть ли свободное место в массиве, если нет, то аллоцируется новый с размером в два раза больше исходного, копируется из исходного в новый, и добавляется
Это отличается от описанного мной только тем, что якобы аллоцируется новый массив с памятью в два раза больше исходного, хотя это не так
источник

PD

Paul Dyatlov in unity3d.ru
EnsureCapacity(_size + 1);
источник

PD

Paul Dyatlov in unity3d.ru
И "свободное место" в массиве не проверяется, он аллоцируется сразу же
источник