Они останутся. Вы можете позвонить git gc
, чтобы очистить их. Чтобы найти их, вы можете, например, использовать git reflog
и git fsck
.
AFAIK, чтобы удалить их на GitHub, вы должны обратиться в службу поддержки ( см. Это ).
Это уже существует (возвращает IEnumerable, но при необходимости его достаточно легко изменить):
arr = Enumerable.Range(0, n);
На мой взгляд, самый интересный способ создания не массива, а IEnumerable
, который перечисляет одно и то же число - он имеет преимущество настройки O (1) время, так как он откладывает фактическое выполнение цикла:
public IEnumerable<int> GetNumbers(int max) {
for (int i = 0; i < max; i++)
yield return i;
}
Этот цикл перебирает все числа от 0
до max-1
, возвращая их по одному - но он проходит только через
Вы также можете использовать это как GetNumbers (max) .ToArray ()
, чтобы получить «нормальный» массив.
Лучший ответ зависит от того, зачем вам нужен массив. Дело в том, что значение любого элемента массива равно индексу, поэтому доступ к любому элементу по сути является избыточной операцией. Почему бы не использовать класс с индексатором, который просто возвращает значение индекса? Он был бы неотличим от реального массива и мог бы масштабироваться до любого размера, за исключением того, что для его настройки не требовалось бы памяти и времени. Но у меня такое ощущение, что ты гонишься не за скоростью и компактностью. Возможно, если вы подробнее остановитесь на проблеме, лучшее решение будет более очевидным.