Что такое выражение коллекции при создании экземпляра List<T>
Я не понимаю, что Intellisense предлагает в качестве замены существующего кода (на фото здесь).
В случае, если изображение будет удалено позже, предложение Intellisense, изображенное на рисунке, предлагает заменить
List<int> x = new List<int>();
x.AddRange(Enumerable.Range(0, 300));
с
List<int> x = [.. Enumerable.Range(0, 300)];
Я предполагаю, что..
— это оператор диапазона, который был представлен в C# 8.0, но документация по этому предлагаемому использованию отсутствует.
- Существует ли неявный «новый список», когда оператор диапазона используется таким образом?
- Я понимаю, что левая часть оператора .. может быть пустой (подразумевается ноль), но я не понимаю, как перечислимый диапазон можно использовать в качестве правой части оператора ...
Если бы кто-нибудь мог объяснить, что происходит «под капотом» этого конкретного использования [x..y] в отношении создания нового списка, я был бы признателен.