C#中Predicate的一点理解

本人喜欢代码看起来比较优雅,而C#真的是一种很优雅的语言。比如我们New List<string> StrList;

如果我们想查找StrList,可以使用C#提供的

StrList.Find , StrList.FindAll , StrList.Exists , StrList.FindLast , StrList.FindIndex

例如:

StrList.FindAll(delegate(String str) { return str.Length <= 3; });

使用这种匿名代理,使得C#的代码看起来更加清晰。上述的关键字都是用到了Predicate作为参数的类型。

那除了C#提供的关键字,我们还可以自己实现Predicate来实现自己的代码。如:

我们在对类使用IEnumerable接口的时候可以自己实现Find方法:

public List<string> Find(Predicate<string> match)
        {
            foreach (string str in this)
            {
                if (match(str))
                {
                     return str;
                }
            }
            return string.Empty;
        }

 

 

posted on 2013-11-06 13:54  风扬sky  阅读(9244)  评论(3编辑  收藏  举报

导航