一、Lambda 表达式 Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。
所有 Lambda 表达式都使用 Lambda 运算符 =>;,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。
IEnumerable<Product> filteredProducts = products.Filter(prod =>
prod.Category == "Soccer" || prod.Price > 20);
public static IEnumerable<Product> Filter(this IEnumerable<Product> productEnum, Func<Product, bool> selectorParam)
{
foreach (Product prod in productEnum)
{
if (selectorParam(prod))
{
yield return prod;
}
}
}
二、Func<T,TResult>
功能描述:封装一个具有一个参数并返回TResult参数指定的类型值的方法.
语法:
public delegate TResult Func<T,TResult>(T arg);参数说明: T:此委托封装的方法的参数类型. TResult:此委托封装的方法的返回值类型.
arg:委托封装的方法的参数
返回值:此委托封装的方法的返回值
实例:
实例:
protected void Page_Load(object sender, EventArgs e) { List<int> list = new List<int>(); list.AddRange(new int[] { 9, 7, 10, 0, 2, 2, 4, 5, 8 }); Func<int, bool> fi = new Func<int, bool>(DAYU7); IEnumerator<int> ie =list.Where<int>(fi).GetEnumerator(); while(ie.MoveNext()) { Response.Write(ie.Current.ToString()+"<br/>"); } } public static bool DAYU7(int i) { return i > 7; }