Вы должны использовать .RemoveAll()
с предикатом, чтобы удалить всех людей с совпадающими данными в personToRemove
объекте персонажа.
Таким образом, ваш запрос будет.
int totalRemoved = _list.RemoveAll(x => x.age == personToRemove.age && x.grade == personToRemove.grade);
Ввод:
_list.Add(new Person { age = 99, grade = 7 });
_list.Add(new Person { age = 87, grade = 7 });
_list.Add(new Person { age = 57, grade = 8 });
Выход:
Редактировать:
Вы также можете использовать традиционный цикл для элегантного удаления участника матча из списка лиц.
for (int i = _list.Count - 1; i >= 0; i--)
{
if (_list[i].age == personToRemove.age && _list[i].grade == personToRemove.grade)
{
_list.RemoveAt(i);
break;
}
}