我有好多不同类型的List,分散在不同的类中,现在想通过一处写个共通的查找的逻辑(按某一属性等于一个传入的参数值),然后这些List能实现这个共通的,方便修改,以后只需要修改一处就OK。怎么做呀,会用到反射的。谢谢。

解决方案 »

  1.   

    写一个泛型方法:        public List<T> FindAll<T>(List<T> list, string propName, object value)
            {
                return list.FindAll(delegate(T obj)
                {
                    Type t = typeof(T);
                    PropertyInfo pi = t.GetProperty(propName, BindingFlags.Instance | BindingFlags.Static| BindingFlags.Public | BindingFlags.NonPublic);
                    if (pi == null)
                        return false;
                    return pi.GetValue(obj, null) == value;
                });
            }
      

  2.   

    反射对性能有影响啊,不同类型实现不同的compare方法比较好