List<MyClass> Columns = new List<MyClass>();
MyClass myClass = new MyClass();
我想检测Columns 里面是否包含与myClass 值相等的对象,用Contains方法不行,因为myClass 是我new出来的
我看到有个Columns.Exists()方法,但是不知道参数该怎么传,请教一下大家

解决方案 »

  1.   

    myClass 值相等?
    值相等如何定义,是HASH相等,还是别的什么相等。按照你的要求,可以使用Find来实现,如下面的代码就是
     List<MyClass> Columns = new List<MyClass>();
                MyClass myClass = new MyClass();            Columns.Find(new Predicate<MyClass>(delegate(MyClass target)
                    {
                        if (target == myClass)
                        {
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }));
      

  2.   

    如果想实现自定义的相等,你得重写Equals方法
      

  3.   

    list.contains(o),系统会对list中的每个元素e调用o.equals(e),方法
    class TestComparer<T> : IEqualityComparer<T>
                where T : Test
            {
                public int GetHashCode(T obj)
                {
                    return obj.GetHashCode();
                }
                public bool Equals(T t1, T t2)
                {
                    return t1.i == t2.i;
                }
            }
      

  4.   

    List<MyClass> data;
    data.Exists(m => m.属性 == myClass.属性);
      

  5.   

    Good! 
    不过m => m.属性这个语法很怪异啊,怎么理解呢?