(C#) 判断相等?

值类型直接用 == 号判断就好。

但是对于引用类型,需要实现IComparable 接口,或者重写 Equal 方法,来实现自己的比较目的。

因为对于引用类型,==号比较的是入口地址,对于同一个class 实现的两个objects来说,其入口地址显然不同。

例如:判断List相等

            List<string> list1 = new List<String>()
            {
                "1",
                "2",
                "3",
            };

            List<string> list2 = new List<String>()
            {
                "1",
                "2",
                "3",
            };

            bool compare1 = list1 == list2;      // False

            bool compare2 = list1.Equals(list2);    // False

            bool compare3 = list1.SequenceEqual(list2);   //True

注意: 用==, Equals对对象判断的时候,由于对象的引用地址不同,上述中的compare1, compare2 都返回为 false.  只有 compare3 是 true; 

原文地址:https://www.cnblogs.com/fdyang/p/3871659.html