123

//通过扩展方法 创建一个类似List FindAll方法
namespace Blog_ExtensonMethod
{
    //静态类
    public static class ExtensionMethods
    {   //声明一个委托(本次不是重点,后面介绍委托和事件) 
        public delegate bool MyCalcDelegate(T obj);
        //静态方法
        //第一版本        
        public static List ScreenValueList(this List list, MyCalcDelegate myCalc) //this关键字 后跟类型
        {
            List reslut = new List();
            foreach (var item in list)
            {
                if (myCalc(item))
                {
                    reslut.Add(item);
                }
            }
            return reslut;
        }
        //第二版本
        public static List ScreenValue(this List list, Func<T, bool> whereLambda)
        {
            return list.Where(whereLambda).ToList();
        }
    }
}
posted @ 2013-10-22 22:30  德鑫  阅读(148)  评论(0)    收藏  举报