您的位置:首页 > 其它

集合中Predicate<T>委托的使用

2014-03-04 12:54 323 查看
Predicate<T>委托表示定义一组条件并确定指定对象是否符合这些条件的方法。或者说是用于定义要搜索的元素的条件。

Array有Array.Find<T>(T[] array,Predicate<T> match)方法,List<T>有List<T>.Find(Predicate<T> match)方法使用该委托。

Code:

class Program
{
static void Main(string[] args)
{
//List<T>.Find
Random r = new Random();
List<int> listInt = new List<int>();
for (int i = 0; i < 10; i++)
{
listInt.Add(r.Next(1, 10));
listInt.Add(r.Next(10, 20));
}
int _ret = listInt.Find(delegate(int num) //匿名方法
{
return num == 10;
});
Console.WriteLine(_ret);
_ret=listInt.Where(delegate(int num) //使用Where也可以获取
{
return num == 10;
}).First();
Console.WriteLine(_ret);

List<int> _retList = listInt.FindAll(delegate(int num)
{
return num > 10;
});
int _retSum = 0;
_retList.ForEach((num) => //Lambda
{
_retSum = _retSum + num;
});
Console.WriteLine(_retSum);

//Array.Find
Point[] points = { new Point(100, 200),
new Point(150, 250), new Point(250, 375),
new Point(275, 395), new Point(295, 450) };

Point first = Array.Find(points, x => x.X * x.Y > 100000);
Console.WriteLine(first.X + "-" + first.Y);
Console.ReadKey();
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: