public class UnitTest1 { public class Person { public string Name { get; set; } public int Age { get; set; } } public class SCompare : IEqualityComparer<Person> { public bool Equals(Person a, Person b) { return a.Name.Equals(b.Name) && a.Age.Equals(b.Age); } public int GetHashCode(Person obj) { return obj.GetHashCode(); } } [Fact] public void Test0() { var s = "one,two,three,four,five,six,seven,eight,nine"; string[] listA = s.Split(","); string[] listB = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; string[] listC = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" }; var resultA = listA.SequenceEqual(listB); var resultB = listA.SequenceEqual(listC); var listA1 = new List<Person> { new Person() { Name = "zangsan", Age = 256 }, new Person() { Name = "lisi", Age = 128 } }; var listB1 = new List<Person> { new Person() { Name = "zangsan", Age = 256 }, new Person() { Name = "lisi", Age = 128 } }; var listC1 = new List<Person> { new Person() { Name = "wangwu", Age = 256 }, new Person() { Name = "liaoliu", Age = 128 } }; var resultAA = listA1.SequenceEqual(listB1, new SCompare()); var resultBB = listA1.SequenceEqual(listC1, new SCompare()); } }