Допустим, у нас есть этот массив:Как удалить конкретный объект из массива
Student[] students = new Student[3];
students[0] = new Student() { Number = 123, Name = "Jansen", Firstname = "Tom" };
students[1] = new Student() { Number = 456, Name = "Tomsen", Firstname = "Jan" };
students[2] = new Student() { Number = 789, Name = "Jackson", Firstname = "Ryan" };
Я хочу, чтобы удалить объект студента с номером 456, так что я называю мой метод:
RemoveStudentWithNumber(456);
Это то, что я пробовал:
public void RemoveStudentWithNumber(int number)
{
for (int i = 0; i < students.Length; i++)
{
if (students[i].Number == number)
{
students[i] = null;
}
}
}
Это удаляет нужного ученика, но заменяет его пустой строкой в массиве. Так что я действительно хочу уменьшить длину массива, когда метод вызывается правильно.
нет решения без списка? В упражнении они говорят, что я должен использовать массивы. – user3657270
Конечно, вы можете перемещать все последующие элементы массива один (который оставил бы пустую строку в конце, где она может остаться незамеченной), или вы можете создать новый массив, который имеет один элемент меньше и все копирует. Нет необходимости в списке, если это жесткое требование. –
Хотя может быть невозможно изменить размер массива, можно приблизиться, используя метод «Изменить размер»: https://msdn.microsoft. ком/EN-US/библиотека/bb348051% 28В = vs.110% 29.aspx –