集合中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:
View Code
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
相关文章推荐
- <c:forEach>标签的使用(用List集合)
- Func<T,T> 委托 与 lambda 使用
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- C#泛型集合之Dictionary<k, v>使用技巧
- 【基础】C#:委托Action、Action<T>、Func<T>、Predicate<T>
- C# 集合的使用List<T>的使用
- [C#基础教程]C#泛型集合—Dictionary<K,V>使用技巧
- Surprising Strings<map集合使用>
- C#委托Action、Action<T>、Func<T>、Predicate<T>
- C#中使用BindingList 绑定DataGridView 可以实现动态绑定,优与List<T>集合的绑定
- 使用<s:iterator>标签来循环遍历某一实体下的set集合数据
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- 泛型系列<8>:使用泛型创建只读集合
- 关于Predicate<T>委托
- 再谈使用Emit把Datatable转换为对象集合(List<T>)
- 使用HashSet<String>将map集合去重
- Languages<stringstream的使用+map集合的使用>
- 使用HashSet<>去除重复元素的集合
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- 使用Enumerable.OfType<T>扩展方法实现非泛型集合的Linq查询