Does ObjectCollection.Add(item) call item.Equals()?
Got a CheckedListBox
on a Form
, and tried to add some items. But I found when CheckedListBox.Items.Add(item)
was called, it would call item.Equals()
.
Also, I found item.GetHashCode()
was called, too. Very confused about why did it happen.
Code are as below.
List<Person> people = new List<Person>();//Person is a customer class for test.
people.Add(new Person() { Name = "张三", Id = "201411580572", Gender = "Male" });
people.Add(new Person() { Name = "李四", Id = "201411580573", Gender = "Male" });
people.Add(new Person() { Name = "王武", Id = "201411580574", Gender = "Male" });
people.Add(new Person() { Name = "赵柳", Id = "201411580575", Gender = "Male" });
people.Add(new Person() { Name = "张飞", Id = "201411580576", Gender = "Male" });
people.Add(new Person() { Name = "赵云", Id = "201411580577", Gender = "Male" });
cklTest.DisplayMember = "Name";//cklTest is a CheckedListBox.
people.ForEach(p => cklTest.Items.Add(p));
Edit: