繁体   English   中英

接下来要学习的内容:F#或LINQ

[英]What to learn next: F# or LINQ

刚开始用C#和.NET弄湿我的脚,到目前为止还喜欢它。 我想我已经掌握了C#语言结构的主要内容,那么我应该深入研究下一个技术:F#还是LINQ?

我的目标是“扩大我的视野”编程方式和“增强我的简历”,没有特别的顺序。

更新:从阅读你的回复我到目前为止倾向于学习LINQ,因为这是“所有.NET程序员必须的”。 我将这个问题暂时搁置,只是为了获得更多的选择。 谢谢您的回答。

更新2:好的,所以从阅读你的回答看起来LINQ有最简单的学习曲线,并且适用于C#和F#两者,所以即使我最终使用F#也没有“浪费”LINQ花费的时间。 再次感谢您的回答。

与F#相比,LINQ不是编程语言,但你应该学习LINQ,因为它会让你在C#和F#中的生活更轻松。

这取决于你需要做什么。

如果要为Internet构建WPF应用程序或ASP.NET或Silverlight应用程序,请进一步深入C#和LINQ。 如果您想构建科学的财务数字运算应用程序,请使用F#。 如果你只想玩得开心,请同时使用:-)

请注意,学习LINQ所需的工作量和学习F#所需的工作量相差几个数量级:LINQ本质上只是一个用于构建查询的库和特殊语法,如果您习惯于编写SQL,您会发现它很容易掌握。 另一方面,如果您习惯于使用C#等语言进行命令式编程,那么掌握F#将需要进行范式转换。 因此,F#也是最能拓宽视野的技术(当然取决于你当前的技能)。

Linq和F#非常不同。

F#本身就是一种语言,但linq是一种可以在语言中使用的工具或功能。

Linq非常出色,可以在很多方面简化您的开发,并从长远来看提高您的工作效率。

Linq是所有dotnet开发人员必备的。

这是一个链接,显示了一些使用linq Linq 101的方法

在我有机会学习C#3工作之前,我花了一些时间用F#作为业余爱好。 事实证明,我已经在我的F#代码中大量使用LINQ而不知道它是以序列表达式的形式。 当我了解LINQ时,我立即认出了它,并立即理解了延迟执行的原则。

所以如果你学习F#,你就已经知道了LINQ。 然后,您只需要查找语法。

除此之外,学习如何编写惯用语F#将教你如何像功能程序员一样思考。 了解如何使用递归,memoization和不可变值进行编程也将帮助您构建更清晰的C#代码(当然使用LINQ)。 那是我的经历。

LINQ(语言集成查询)是C#中的一种小型嵌入式语言,它允许您以非常自然的方式处理对象集合,例如

int[] numbers = new int[] {1,2,3,4,5,6,7,8,9};

var smalloNumbers = from n in numbers where n < 10 select n;

这是有效的C#,LINQ只是该语言的另一个特性,它恰好与VB共享。 相关技术使用LINQ访问数据库存储(LINQ-to-SQL LINQ-to-NHibernate等)或其他有趣的服务(如amazon或ebay等),但LINQ本身可以从C#本身的语言中学习(LINQ-to - 对象)无需使用数据库或类似的东西。

另一方面,F#是一种完整的“功能”语言,虽然它是一种通用语言,但在处理大量事物,map-reduce样式问题和递归处理方面尤其擅长。

所以,总的来说,我建议首先使用C语言中的其他语言功能来获取LINQ,您可能已经错过了(LINQ也会引导您完成Lambda表达式,匿名类型和var关键字,如果尚未遇到),然后转到F#作为一个新的学习项目在以后。 作为C#开发人员,我每天都在代码中使用LINQ。

我希望有所帮助。

恕我直言

F#然后是LINQ

他们俩都很高兴。

为什么.Net空间中的其他框架不像WCF,WPF,ASP.net MVC,某些.Net ORM等? F#适用于.Net平台上的函数式编程语言。 如果您还没有使用其他函数式编程语言,那么它就是一个不同的范例,学习曲线将比LINQ更陡峭。 学习LINQ的最佳方法是恕我直言,在您使用C#和SQL服务器数据库的玩具或现实项目中使用它。 LINQ没有太多新的语法糖。
另一方面,虽然上述内容也适用于学习F#,但您可以使用F#来解决任何编程练习或项目Euler之类的谜题,以熟悉编程结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM