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());
  • 相关阅读:
    ASP.NET在禁用视图状态的情况下仍然使用ViewState对象【转】
    Atcoder Regular Contest 061 D Card Game for Three(组合数学)
    Solution 「CERC 2016」「洛谷 P3684」机棚障碍
    Solution 「CF 599E」Sandy and Nuts
    Solution 「洛谷 P6021」洪水
    Solution 「ARC 058C」「AT 1975」Iroha and Haiku
    Solution 「POI 2011」「洛谷 P3527」METMeteors
    Solution 「CF 1023F」Mobile Phone Network
    Solution 「SP 6779」GSS7
    Solution 「LOCAL」大括号树
  • 原文地址:https://www.cnblogs.com/refuge/p/8151216.html
Copyright © 2011-2022 走看看