@Artem_Nim_programmer
Programmer

Не работает удаление из списка(Remove). Что делать???

public static List< Note > list_note = new List< Note >();
................
private void button2_Click(object sender, EventArgs e)// удалить
{

Note note = new Note();
DateTime.TryParse(dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex].Cells[0].Value.ToString(), out note.date);
note.text = dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex].Cells[1].Value.ToString();


XmlSerializer x = new XmlSerializer(typeof(List));

list_note.Remove( note); // тут должно удалить элемент

Stream st = File.OpenWrite("data.xml");
x.Serialize(st, list_note);
st.Close();
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedCells[0].RowIndex);
}
  • Вопрос задан
  • 404 просмотра
Решения вопроса 1
1) Вы создаете элемент.
2) Вы удаляете элемент не добавив его в список.

List что бы удалить элемент Note, сравнивает их.
https://msdn.microsoft.com/ru-ru/library/cd666k3e(...

Если тип T реализует IEquatable — универсальный интерфейс компаратор проверки на равенство Equals метода этого интерфейса; в противном случае — функцию сравнения по умолчанию является Object.Equals.
Этот метод выполняет линейный поиск; Таким образом, этот метод является операцией O (n) операция, где n — Count.


Note должен уметь сравнивать себя с другими.
https://msdn.microsoft.com/ru-ru/library/ms173147(...

Пройдитесь по коду в режиме отладки, шаг за шагом.
Точно узнайте что находится в List, и что происходит после remove, где именно ошибка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы