文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>LINQ真的好强大

LINQ真的好强大

时间:2011-01-07  来源:王长委

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LinqDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] words = { "hello","wonderful","linq","beautiful","word"};

            //MethodOne(words);
            MethodTwo(words);
        }

        private static void MethodTwo(string[] words)
        {
            //将查出的集合放到变量groups中
            var groups =
                //查出words中的每个单词,并定义到word字段中(此时words相当于一张只有一列的表,而现在列的名字就是word)
                from word in words
                //根据word进行排序
                orderby word ascending
                //根据word字段的长度进行分组,组的变量为lengthGroups(相当于words表中的数据是由若干个以组为单位的元素组成,也就是说现在words表的列的名字变成了lengthGroups,而lengthGroups也是一张简单的表,它的列的名字是word)
                group word by word.Length into lengthGroups
                //因为是以长度进行分组的,如果把words看成是对象,那么他就是lengthGroups类型的集合(也可以看成是一个字典表,键为lengthGroups.Key,值为lengthGroups)
                //根据lengthGroups的Key属性值(字典表中的键)进行排序
                orderby lengthGroups.Key ascending
                //定义groups集合的基本类型(也就集合里是什么类型的元素)
                select new { lenth = lengthGroups.Key, words = lengthGroups };

            foreach (var group in groups)
            {
                Console.WriteLine("words  of  length " + group.lenth);

                foreach (string word in group.words)
                {
                    Console.WriteLine("  " + word);
                }
            }
        }

        private static void MethodOne(string[] words)
        {
            //查出长度小于等于5的单词集合
            var shortwords =
                from word in words
                where word.Length <= 5
                select word;

            //遍历集合
            foreach (var word in shortwords)
            {
                Console.WriteLine(word);
            }
        }
    }
}

MethodOne比较简单,只能感觉到LINQ能把集合当做数据库中的表一样查询,MethodTwo就有点意思了(上面写了我对方法的每一句的理解),这个例子让我感觉到LINQ其实能把所有的数据看做表(像数据库中的表一样查询到想要的数据)和对象(又有对象的特征),它打破了编程语言和数据之间的的界限,使开发人员只需要会一种编程语言(任何一种编程语言,因为LINQ是一个可以扩展的)就能够随意的访问数据(任何类型的数据源)。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载