检查元素的数量,每个元素的值及两个集合中元素的顺序是否相等,3个方面都相等则为true,否则为false
IListstrList1 = new List (){ "One", "Two", "Three", "Four", "Three"}; IList strList2 = new List (){ "One", "Two", "Three", "Four", "Three"}; bool isEqual = strList1.SequenceEqual(strList2); // returns trueIList strList1 = new List (){ "One", "Two", "Three", "Four", "Three"}; IList strList2 = new List (){ "Two", "One", "Three", "Four", "Three"}; bool isEqual = strList1.SequenceEqual(strList2); // returns false//如果是引用类型,则比较的是引用Student std = new Student() { StudentID = 1, StudentName = "Bill" }; IList studentList1 = new List (){ std }; IList studentList2 = new List (){ std }; bool isEqual = studentList1.SequenceEqual(studentList2); // returns true Student std1 = new Student() { StudentID = 1, StudentName = "Bill" };Student std2 = new Student() { StudentID = 1, StudentName = "Bill" }; IList studentList3 = new List (){ std1}; IList studentList4 = new List (){ std2 }; isEqual = studentList3.SequenceEqual(studentList4);// returns false//在上面的示例中,studentList1和studentList2包含相同的学生对象std。 所以studentList1.SequenceEqual(studentList2)返回true。 但是,stdList1和stdList2包含两个独立的学生对象std1和std2。 //所以现在,stdList1.SequenceEqual(stdList2)将返回false.//要比较复杂类型的两个集合的值,您需要实现IEqualityComperar 接口,如下所示class StudentComparer : IEqualityComparer { public bool Equals(Student x, Student y) { if (x.StudentID == y.StudentID && x.StudentName.ToLower() == y.StudentName.ToLower()) return true; return false; } public int GetHashCode(Student obj) { return obj.GetHashCode(); }}// following returns truebool isEqual = studentList1.SequenceEqual(studentList2, new StudentComparer());