Постоянное значение false у list.Contains - C#
Формулировка задачи:
Здравствуйте, помогите пожалуйста разобраться из за чего постоянно значение false у строчки "da.Contains(new data { FIO = comboBox1.SelectedValue.ToString(), data1 = dateTimePicker1.Value.ToString() })". Это значение постоянно даже если в list da есть точно такая же запись.
Листинг программы
- public class data
- {
- public string FIO { get; set; }
- public string klass { get; set; }
- public string data1 { get; set; }
- public override string ToString()
- {
- return "ФИО: " + FIO + " Специализация: " + klass+" Дата ухода в отпуск: "+data1;
- }
- }
- private void button3_Click(object sender, EventArgs e)
- {
- if (da.Contains(new data { FIO = comboBox1.SelectedValue.ToString(), data1 = dateTimePicker1.Value.ToString() })==true)
- MessageBox.Show("Не может уйти в отпуск т.к. человек с такой же специализацией уходит в эту же дату");
- else
- da.Add(new data { FIO = comboBox1.SelectedValue.ToString(), klass = comboBox2.SelectedValue.ToString(), data1 = dateTimePicker1.Value.ToString() });
- }
Решение задачи: «Постоянное значение false у list.Contains»
textual
Листинг программы
- public class data
- {
- public string FIO { get; set; }
- public string klass { get; set; }
- public string data1 { get; set; }
- public override string ToString()
- {
- return "ФИО: " + FIO + " Специализация: " + klass+" Дата ухода в отпуск: "+data1;
- }
- public override bool Equals(object obj)
- {
- if (ReferenceEquals(null, obj))
- {
- return false;
- }
- if (ReferenceEquals(this, obj))
- {
- return true;
- }
- return obj.GetType() == GetType() && Equals((data)obj);
- }
- public bool Equals(data other)
- {
- return string.Equals(klass, other.klass) && string.Equals(data1, other.data1);
- }
- public override int GetHashCode()
- {
- unchecked
- {
- return ((klass?.GetHashCode() ?? 0) * 397) ^ (data1?.GetHashCode() ?? 0);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д