Постоянное значение 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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д