zoukankan      html  css  js  c++  java
  • Linq 对象的比较 Contains,Max

     

    Contains

        public class StudentEquality : IEqualityComparer<Student>
        {
    
            public static StudentEquality Instance { get; set; }
    
            private StudentEquality()
            {
    
            }
    
            static StudentEquality()
            {
                Instance = new StudentEquality();
            }
    
    
            public bool Equals(Student x, Student y)
            {
                if (x == null || y == null)
                {
                    return false;
                }
    
                if (x.StudentID == y.StudentID)
                {
                    return true;
                }
    
                return false;
            }
    
            public int GetHashCode(Student obj)
            {
                return obj.GetHashCode();
            }
        }
                List<Student> studentList = new List<Student>() {
                    new Student() { StudentID = 1, StudentName = "Zohn", StandardID =1 },
                    new Student() { StudentID = 2, StudentName = "Moin", StandardID =1 },
                    new Student() { StudentID = 3, StudentName = "Bill", StandardID =2 },
                    new Student() { StudentID = 4, StudentName = "Ram1" , StandardID =2 },
                    new Student() { StudentID = 5, StudentName = "Ron1123", StandardID = 3  }
                };
    
                Student s = new Student() { StudentID = 5, StudentName = "Ron1123", StandardID = 3 };
                bool res = studentList.Contains(s, StudentEquality.Instance);
                Console.WriteLine("Contains = " + res);// True

     

     

    Max

        public class StudentComparable : IComparable<StudentComparable>
        {
            public Student Student { get; set; }
    
            public int CompareTo(StudentComparable other)
            {
                if (Student.StudentName.Length > other.Student.StudentName.Length)
                {
                    return 1;
                }
    
                if (Student.StudentName.Length == other.Student.StudentName.Length)
                {
                    return 0;
                }
                return -1;
            }
        }
                IList<Student> studentList = new List<Student>() {
                    new Student() { StudentID = 1, StudentName = "Zohn", StandardID =1 },
                    new Student() { StudentID = 2, StudentName = "Moin", StandardID =1 },
                    new Student() { StudentID = 3, StudentName = "Bill", StandardID =2 },
                    new Student() { StudentID = 4, StudentName = "Ram1" , StandardID =2 },
                    new Student() { StudentID = 5, StudentName = "Ron1123", StandardID = 3  }
                };
                //选出最长的名字的 Student
                StudentComparable max = studentList.Max(m => new StudentComparable { Student = m });
                Console.WriteLine(JsonConvert.SerializeObject(max.Student));
                Console.Read();

  • 相关阅读:
    12迭代器
    11(2)Vector(向量)
    11(1) LinkList ---链表
    11集合(Collection<E>) Arraylist
    10异常
    乘法计算过程的模拟
    10 Date详解
    详细的OA系统学习
    8 math类
    Java开发中的23种设计模式详解
  • 原文地址:https://www.cnblogs.com/refuge/p/8150650.html
Copyright © 2011-2022 走看看