Person p1 =new Person("名字1", 18); Person p2 =new Person("名字1", 19); Person p3 =new Person("名字1", 20); Person[] persons =...{ p1, p2, p3 }; // 查找p2所在数组中的位置 Array.IndexOf<Person>(persons, p2);
2. 查找值
Person p1 =new Person("名字1", 18); Person p2 =new Person("名字1", 19); Person p3 =new Person("名字1", 20); Person[] persons =...{ p1, p2, p3 }; Person p4 =new Person(p2.Name, p2.Age); // 查找数组中与p4相同的元素所在的位置 Array.IndexOf<Person>(persons, p4);
但是,这种方法必需使Person重载Object的 Equals 比较方法
publicoverridebool Equals(object obj) ...{ Person person = obj as Person; if (person ==null) returnfalse; return (this.name == person.name &&this.age == person.age); }
第二种按对象的值查找的方法
实现IComparabler接口
publicint CompareTo(object obj) ...{ Person person = obj as Person; if (person ==null) thrownew Exception("The method or operation is not implemented."); // 先从年龄开始比较 int ageResult =this.age.CompareTo(person.age); if (ageResult ==0) ...{ // 如果年龄相等在坐姓名比较 returnthis.name.CompareTo(person.name); } else ...{ return ageResult; } }