Рейтинг:
13
OriginalGriff
Попробуй:
public int GetLength(params int[] x)
{
return x.Length;
}
Thomas Daniels
Опереди меня! :смех: +5
OriginalGriff
Я *знал*, что курс машинописи пригодится! ;)
Suren97
Большое спасибо :)
и, пожалуйста, не могли бы вы сказать, как я могу удалить случайный элемент из этого массива?
OriginalGriff
Вы не можете удалить элементы из стандартного массива вообще - как только он выделен, он не может изменить размер. Я не слышал о классе под названием DynamicArray, но есть класс List, который является гибким и позволит вам вставлять и удалять элементы, а также получать доступ к элементам через индекс так же, как если бы это был массив (что он и есть, внутренне - он обертывает массив).
Но...если вы регулярно вставляете или удаляете элементы (из списка или чего-то подобного), вы можете прочитать это:
https://www.codeproject.com/Articles/870013/List-T-Is-it-really-as-efficient-as-you-probably-t
Есть проблемы с производительностью, если количество элементов становится высоким.
Рейтинг:
11
Thomas Daniels
Я не знаю что именно DynamicArray
есть, но для завершения фрагмента кода, который у вас есть (получение длины целочисленного массива), вам нужно только вернуть x.Length
:
public int GetLength(params int[] x)
{
return x.Length;
}
Suren97
Большое спасибо :)
и, пожалуйста, не могли бы вы сказать, как я могу удалить случайный элемент из этого массива?
Thomas Daniels
Вы не можете удалить элементы из массивов, но вы можете использовать List<int>
, затем сгенерируйте случайное целое число (это допустимый индекс списка), а затем используйте метод RemoveAt: см. документацию List<T> и Random.
Suren97
например, я хочу удалить номер 6, но не могу?
Thomas Daniels
Не с массивом; но вы можете использовать список<int>, а затем вы можете сделать .Remove(6) в списке.
Suren97
если не с массивом, то, например, с чем?
Thomas Daniels
Как я уже сказал, с помощью List<int>
Suren97
я не могу создать функцию, которая удалит из этого какой-либо элемент?
DynamicArray d = новый динамический массив(4, 5, 6, 1, 2);
Thomas Daniels
Но что такое DynamicArray?
Thomas Daniels
Это твой класс? Затем стажеры этого класса решают, можете ли вы удалить что-то из него или нет.
Dave Kreskowiak
Никакого дерьма. Это не часть .NET Framework, поэтому это должно быть что-то, что вы написали. Не видя этого кода, невозможно сказать вам, как это сделать.
Suren97
у меня есть класс DynamicArray, который получает новый DynamicArray(4,5,6,1,2)
мне нужно, когда я вызову функцию d.remove(2), она удалит номер 6 и напечатает 4,5,1,2
Dave Kreskowiak
Ну, ваш класс DynamicArray должен поддерживать массив внутри себя. Итак, чтобы удалить элемент, вы должны выделить новый массив на один элемент меньше исходного, скопировать все элементы, кроме того, который вы удаляете, в новый массив, а затем установить свой внутренний указатель массива на новый экземпляр массива.
Простой.
Suren97
да, вы правы, пожалуйста, скажите мне, как я должен написать этот код?
Dave Kreskowiak
Я уже это сделал.
Нет, я не собираюсь писать ее для тебя. У меня есть около 2000 строк моего собственного кода, который я должен написать сегодня.
Suren97
Пожалуйста, если вы будете свободны, пришлите мне этот код.
Dave Kreskowiak
Этого не случится. Я работаю более 60 часов в неделю над своими собственными вещами. Здесь нет никого, кто сделает за тебя твою работу.