没有Linq可以使用lambdas吗?

Rob*_* H. 4 .net c# linq

如果我不需要,我宁愿不使用Linq(当我开始一个新项目时,我删除对它的引用).不过,Lambdas看起来很有用.我不会养成使用lambdas的习惯,但是,如果Linq必须标记为骑行.

提前致谢

McK*_*Kay 23

Lambdas可以随时使用.它们是一种新的语言功能.Linq使用它们,但您不必使用linq.

Action blah = () => { System.Console.WriteLine("Hello World!"); }
blah(); // will write Hello World! to the console
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 16

Lambda表达式完全独立于LINQ.实际上,您可以在从VS2008或VS2010定位.NET 2.0项目时使用它们.同样,如果您使用的是.NET 3.5,则可以在不使用LINQ的情况下使用表达式树 - 尽管在我的经验中这种情况并不常见.

但是,我建议你不要避免使用LINQ - 它是一个非常强大的工具.我个人略微担心需要翻译的LINQ提供商Queryable- 他们更难预测 - 但LINQ to Objects是纯金.你有什么不喜欢的?请注意,您不必使用查询表达式来使用LINQ - 您可以使用lambda表达式以"点表示法"编写查询:

var query = people.Where(p => p.Age >= 18)
                  .Select(p => p.Name);
Run Code Online (Sandbox Code Playgroud)

...所以如果查询表达式让你失望,你不需要担心它们.

编辑:只是为了反驳对问题本身的评论 - 您可以通过LINQBridge项目使用LINQ to Objects with .NET 2.0 .

  • 由于链接的枚举器,链接许多方法的查询可能会有一些开销.但是我不会因为性能而回避LINQ.如果有一个命中(显示为分析),我会更改*导致问题的确切*查询. (2认同)