У меня есть список объектов класса и хочу удалить один элемент, но это не распространяется работа:Удалить элемент из списка по значению
class Person
{
public string name;
public Person(string s)
{
this.name = s;
}
}
void ABC()
{
List<Person> newPersonList = new List<Person>();
newPersonList.Add(new Person("A"));
newPersonList.Add(new Person("B"));
newPersonList.Add(new Person("C"));
newPersonList.Remove(A);
newPersonList.RemoveAt(1);
}
RemoveAt (1) работает и удаляет элемент с ID 1.
Я думаю, что Remove (A) должен удалить элемент со значением «A». Но это не работает. Может кто-нибудь объяснить, почему? И какой правильный способ удалить по значению?
Как вы думаете, что должно произойти в 'Remove (A);'? Вы не объявили 'A'. В общем случае вам нужно переопределить 'Equals' в' Person' или/и реализовать 'IEquatable' –