zoukankan      html  css  js  c++  java
  • Linq 等式运算符:SequenceEqual

    检查元素的数量,每个元素的值及两个集合中元素的顺序是否相等,3个方面都相等则为true,否则为false

    IList<string> strList1 = new List<string>(){"One", "Two", "Three", "Four", "Three"};
     
    IList<string> strList2 = new List<string>(){"One", "Two", "Three", "Four", "Three"};
     
    bool isEqual = strList1.SequenceEqual(strList2); // returns true
    
    IList<string> strList1 = new List<string>(){"One", "Two", "Three", "Four", "Three"};
     
    IList<string> strList2 = new List<string>(){ "Two", "One", "Three", "Four", "Three"};
     
    bool isEqual = strList1.SequenceEqual(strList2); // returns false
    
    //如果是引用类型,则比较的是引用
    Student std = new Student() { StudentID = 1, StudentName = "Bill" };
     
    IList<Student> studentList1 = new List<Student>(){ std };
     
    IList<Student> studentList2 = new List<Student>(){ 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<Student> studentList3 = new List<Student>(){ std1};
     
    IList<Student> studentList4 = new List<Student>(){ std2 };
            
    isEqual = studentList3.SequenceEqual(studentList4);// returns false
    
    //在上面的示例中,studentList1和studentList2包含相同的学生对象std。 所以studentList1.SequenceEqual(studentList2)返回true。 但是,stdList1和stdList2包含两个独立的学生对象std1和std2。 
    //所以现在,stdList1.SequenceEqual(stdList2)将返回false. //要比较复杂类型的两个集合的值,您需要实现IEqualityComperar <T>接口,如下所示
    class StudentComparer : IEqualityComparer<Student> { 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 true bool isEqual = studentList1.SequenceEqual(studentList2, new StudentComparer());
  • 相关阅读:
    codeforces 980A Links and Pearls
    zoj 3640 Help Me Escape
    sgu 495 Kids and Prizes
    poj 3071 Football
    hdu 3853 LOOPS
    hdu 4035 Maze
    hdu 4405 Aeroplane chess
    poj 2096 Collecting Bugs
    scu 4444 Travel
    zoj 3870 Team Formation
  • 原文地址:https://www.cnblogs.com/refuge/p/8151216.html
Copyright © 2011-2022 走看看