• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

С# Найти по имени элемент массива, удалить его и сделать сдвиг

LeoWarp _

New member
10.12.2019
1
0
BIT
0
C#:
public void DeleteArray(string name)
        {
            for (int i = 0; i < CountPeople.Length; i++)
            {
                if (CountPeople != null)
                {
                    if (CountPeople.Name == name)
                    {
                        for (int x = i - 1; x < CountPeople.Length; x++)
                        {
                            CountPeople[x] = CountPeople[x + 1];
                        }
                    }
                }
            }
        }
Помогите решить эту задачку, я не понимаю, где здесь ошибка
 

f22

Codeby Academy
Gold Team
05.05.2019
1 924
226
BIT
1 679
CountPeople[x] = CountPeople[x + 1];
У тебя код решает совсем другую задачу.
Идёт присваивание значения текущего элемента следующему.

Вообще в шарпе для поиска по массиву используется метод
C#:
int numIndex = indexOf(CountPeople, Object)
Выполняет поиск указанного объекта внутри всего одномерного массива и возвращает индекс его первого вхождения.

Ну а чтобы удалить его, нужно преобразовать массив в список,
удалить по индексу и обратно вернуть в массив.
C#:
List<string> tmp = new List<string>(CountPeople);
tmp.RemoveAt(numIndex);
CountPeople = tmp.ToArray();
Array.Sort(CountPeople);

Как-то так.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!