Почему не удаляется элемент List? - C#

Узнай цену своей работы

Формулировка задачи:

Кода слишком много, поэтому не знаю, есть ли смысл его вставлять сюда. Но суть вот в чём. У меня есть один класс с названием Dish. В нём определены некоторые поля. В другом классе (Order) есть List, типом которого является этот класс Dish, т.е.
public static List<Dish> dishes = new List<Dish>();
В этом же классе Order есть метод Добавить новое блюдо (т.е. в list добавляется новый элемент типа Dish)
 public void AddNewDish(Dish name) {
            dishes.Add(name);
        }
А таккже метод для удаления элемента из list:
public void DeleteDish(Dish nameToDelete) {
            dishes.Remove(nameToDelete);
        }
Есть ещё 2 класса. В одном вызывается метод, чтобы добавить элемент в массив. В другом классе вызывается метод, чтобы удалить элемент. В другом классе это всё выводится на экран прямо в тот же момент. И самое странное, что добавление элемента происходит успешно, а вот удаление почему-то вообще не происходит, хотя методы удаления и добавления элемента в list написаны идентично, просто для одного Add, для другого Remove. В чём может быть проблема? Метод RemoveAt (т е удаление по индексу), кстати, нормально работает. А именно с Remove не работает.

Решение задачи: «Почему не удаляется элемент List?»

textual
Листинг программы
int FindBookIndex(Book book)
{
    for (int i = 0; i < library.Count; i++)
    {
        if (book == library[i].book) return i; //сравнение не по ссылкам, а по полям с помощью перегруженного оператора
    }
    return -1;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.6 из 5
Похожие ответы