using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace demo1_entrust
{
public static class MylistExt
{
/*
* 拓展方法
* 静态类
* 静态方法
* this关键字
* */
/// <summary>
/// 拓展方法和委托的结合
/// </summary>
/// <param name="list"></param>
/// <param name="funcwhere"></param>
/// <returns></returns>
public static List<string> MyWhere(this List<string> list,Func<string,bool> funcwhere)
{
List<string> result = new List<string>();
foreach (var item in list)
{
if (funcwhere(item))
{
result.Add(item);
}
}
return result;
}
}
}
案例:
#region 案例
List<string> strList = new List<string>()
{
"3","9","32","7"
};
/*把字符串小于"6" 查询出来然后打印
*结合拓展方法的使用
* */
// var temp= strList.MyWhere(delegate (string a) { return a.CompareTo("6") < 0; });
//方法泛型的约束 可以省略 但是如果 你是显示的约束,必须就满足约束
//最终在iIL会自动不全这个约束内容
var temp= strList.MyWhere(a=>a.CompareTo("6")<0);
foreach (var item in temp)
{
Console.WriteLine(item);
}
#endregion
输出结果: