*尽管这是一个重复的问题,但我之前从未在代码中看到过表达式“ =>”。如果我知道这是一个lambda表达式,我将自己用google搜索并弄清楚。谢谢!
我是使用Linq的新手,所以当我在这段代码中遇到“ =>”时,确实让我感到困惑:
using System;
using System.Linq;
using System.Collections.Generic;
public static class Extend
{
public static double StandardDeviation(this IEnumerable<double> values)
{
double avg = values.Average();
return Math.Sqrt(values.Average(v=>Math.Pow(v-avg,2)));
}
}
资料来源:通用清单的标准差?
几个问题:=>在这里做什么?Intellisense告诉我'v'是一个整数,但从未声明过。这是如何运作的?
该表示法=>
表示lambda表达式
例子:
Enumerable.Range(0,100).Where(x=>x==1);
这x=> x==1
是一个匿名委托,接受它int
作为参数并返回bool
。它是:
delegate bool SomeDelegate(int x);
您可以将代表的身体分配给:
bool Function(int x)
{
return x==1;
}
Lambda表达式是一个匿名函数,可用于创建委托或表达式树类型。通过使用lambda表达式,您可以编写可以作为参数传递或作为函数调用值返回的局部函数。Lambda表达式对于编写LINQ查询表达式特别有用。
要创建lambda表达式,请在lambda运算符=>的左侧指定输入参数(如果有),然后将表达式或语句块放在另一侧。例如,lambda表达式x => x * x指定一个名为x的参数,并返回x平方的值。您可以将此表达式分配给委托类型,如以下示例所示:
来源:了解lambda表达式
这是一个关于为什么使用lambda的SO问题:C#Lambda表达式:为什么要使用它们?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句