这个问题已经有一个答案在这里:

我读Lambda的表情是一个令人难以置信的强大的外来C#但我发现自己感到迷惑,通过他们。他们可以如何改进我的生活或我的代码的更好?任何人都可以指向一个很好的资源用于学习这样的表情?

他们看起来很酷的地狱,但他们如何涉及到我的日常生活的一个asp.net 开发?

编辑:谢谢你的实例,并感谢链接到埃里克*怀特的文章。我还在消化那些现在。一个快速的问题:是lambda式可用于任何其他查询?每个例子中,我看到已经查询结构。

有帮助吗?

解决方案

:是lambda式可用于任何其他查询

Lamba的表情是没有什么比一个方便的方式编写功能的在线'.

所以他们是有用的任何地方,你想要一位的代码可以被称为虽然这是一个单独的功能,但这实际上是书写在它的呼叫者。(除了保持相关代码的相同的位置在一个文件,这还可以让你玩游戏用的变量范围的-看到'封闭的'基准。)

一个例子的一个非查询有关使用lamba可能是一位代码,这不是异步的,你开始有线程池.用queueuserworkitem.重要的一点是,你也可以写信这种使用匿名代表(其中一C#2的介绍),或者只是一个普通的单独的类件的功能。

http://blogs.msdn.com/jomo_fisher/archive/2005/09/13/464884.aspx 是一个极好的步骤逐步引入所有这些东西,可能会帮助你。

其他提示

Lambda带来功能程序来。他们都是匿名的功能,可作为传递的价值观的某些其他的功能。使用最多在皇宫.

这里是一个人为的例子:

List<int> myInts = GetAll();
IEnumerable<int> evenNumbers = myInts.Where(x => x % 2 == 0);

现在当你foreach通过evenNumbers的lamda

x=> x % 2 == 0

然后应用作为一个过滤器来myInts.

他们成为真正有用的增加可读性到复杂的算法,这将有许多嵌套如果条件和循环。

这里有一个简单的例子的一些很酷的东西,你可以做lambda:

List<int> myList = new List<int>{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
myList.RemoveAll(x => x > 5);
//myList now == {1,2,3,4,5}

该RemoveAll方法需要一种上游(a代表这一需要argurments和返回bool),任何符合获得中删除。使用氧表达,使它比实际上简单的宣布所谓词。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top