对于业余爱好者或专业人士(他们没有正式的工作要求)来说,学习LINQ值得吗?我们可以通过循环、数组等传统语言功能实现与LINQ相同的功能。
为什么要重复实现相同目标的方法?
我发现LINQ倾向于让您更加关注意图。换句话说,代码在做什么,而不是该代码是如何做的。或者换一种说法,它更像是一种声明性的编程形式(比如函数式编程),而不是命令式编程风格。
我发现使用LINQ非常有益,因为我不必编写for循环来迭代集合并执行一些操作。相反,我可以使用单行LINQ语句来为我做这件事
一个简单的例子可能是someCollection.OrderBy(c => c.propertyOne);
,您自己做这件事需要更多的代码。
LINQ与其说是你需要学习的东西,不如说是你可能只是会学到的东西。它现在只是框架的一部分,还有一些很酷的附加语法。如果您的目标是编写干净、可维护的代码,那么毫无疑问,您将希望编写利用LINQ扩展的代码。
除了C#中"from…select…where"的语法糖之外,你会发现LINQ无论如何都在利用框架/语言的其他部分,即扩展方法、枚举器、lambda表达式和委托。无论如何,所有这些都越来越难以避免。
当涉及到使用提供自己的LINQ实现的框架时,例如实体框架或LINQ to SQL,那就另当别论了。我会根据需要学习这些。在您的案例中,如果您的辅助项目需要一些DB CRUD的东西,那么您可以考虑其中的任何一个。