LINQ入门教程示例使用F#的实现
在MSDN介绍LINQ的时候,在开篇的时候介绍了如何使用LINQ,并使用以下代码举例:
下面来看看F#的同样功能实现吧,呵呵!
以前看到关于函数式编程的资料,说如何的提高开发效率降低代码量,我还持怀疑态度,哎!不服不行啊。F#支持安全的多线程操作和并发多核心处理器优势,也许我们在一些关键组件上可以使用这些技术来提高我们的生产效率和软件的稳定性。目前来看,F#的应用领域可能更多的在数据密集型和逻辑复杂的业务处理,在服务端的优势在于线程安全和并发优势。(据说,F#的核心开发Leader是为.Net 2.0设计泛型的)
以上是本人的拙见,还希望能和大家共同学习探讨。
1class StartWithLINQ {
2 static int[] numbers = new Int32[7] { 0, 1, 2, 3, 4, 5, 6 };
3 public StartWithLINQ() {
4 var numberQuery =
5 from x in numbers
6 where (x % 2) == 0
7 select x;
8 foreach (int item in numberQuery) {
9 Console.WriteLine("x = {0}", item);
10 }
11 }
12 }
首先创建了一个数组,包含7个成员,接着在从这个序列中筛选出所有能被2整除的元素并输出。OK,初次使用的时候还是有些不太适应这个语法,感觉怪怪的。想象一下,如果我们不用LINQ,我们的做法可能会少有不同,我们会自己去Foreach这个数组,判断后输出。代码量和现在的也没有什么太大差异。2 static int[] numbers = new Int32[7] { 0, 1, 2, 3, 4, 5, 6 };
3 public StartWithLINQ() {
4 var numberQuery =
5 from x in numbers
6 where (x % 2) == 0
7 select x;
8 foreach (int item in numberQuery) {
9 Console.WriteLine("x = {0}", item);
10 }
11 }
12 }
下面来看看F#的同样功能实现吧,呵呵!
Code(F#)
上面的代码是一段脚本。首先定义一个序列,看看人家定义序列的简便语法,爽歪歪!接着使用流水线操作符,并结合Seq模块提供的筛选器,在筛选器中我们又使用了匿名方法来对数据进行筛选,生成新序列并输出,一气呵成!以前看到关于函数式编程的资料,说如何的提高开发效率降低代码量,我还持怀疑态度,哎!不服不行啊。F#支持安全的多线程操作和并发多核心处理器优势,也许我们在一些关键组件上可以使用这些技术来提高我们的生产效率和软件的稳定性。目前来看,F#的应用领域可能更多的在数据密集型和逻辑复杂的业务处理,在服务端的优势在于线程安全和并发优势。(据说,F#的核心开发Leader是为.Net 2.0设计泛型的)
以上是本人的拙见,还希望能和大家共同学习探讨。