1, 现有一个字符串集合, 集合中存的是数字, 把大于等于 2 的数值, 打印出来, 需要用到扩展方法, 泛型, 委托
- class Projram{
- static void Main(String[] args){
- // 定义一个集合,
- List<string> list = new List<string>{"1","3","5","6","7"};
- //var okList = list.GetList(IsOk);
- //var okList = list.FindAll(IsOk);
- //var okList = list.FindAll(a =>{ if(int.Parse(a)>= 2) return true;return false; });
- //var okList = list.FindAll(a=>int.Parse(a)>=2);
- foreach(item in okList){
- console.writeLine(item);
- }
- }
- // 定义一个方法判断是否大于 2
- static bool IsOk(string str){
- if(int.parse(str)>=2)
- return true;
- return false;
- }
- }
- // 给 list 定义一个扩展方法 (扩展方法的三要素, 静态类, 静态方法, this 关键字)
- // 一般情况下, 将扩展类的方法和要扩展的类的命名空间一致
- namespace System.Collections.Generic
- {
- // 方法签名 (安全的方法指针)
- public delegate bool okdel(T obj);
- public static class ListExt{
- public static List<T> GetList<T>(this List<T> list,del){
- List<T> resultList = new List<T>();
- foreach(var item in list){
- if(del(item))
- resultList.add(item);
- }
- return resultList;
- }
- }
- }
来源: http://www.bubuko.com/infodetail-2989884.html