c#Linq查询

Linq支持主要的查询:

1、对象集合(IEnumerable或者IEnumerable<T>)

2、SQL数据库

3、XML文档

先对对象集合做一个解释:

查询的是集合,包括List<T>,Dictionay<T,K>,HashTable<T>,ArrayList这些集合都继承了IEnumerable接口。

        public void Test1()
        {
            List<string> names = new List<string>();
            Dictionary<string, int> per = new Dictionary<string, int>();
            Hashtable ht = new Hashtable();
            ArrayList al = new ArrayList();
        }

对弱变量类型var简单使用

        public void Test2()
        {
            string name = "Messi";
            int age = 20;
            Console.WriteLine(name);
            Console.WriteLine(age);

            var name1 = "kaka";
            var age1 = 18;
            Console.WriteLine(name1);
            Console.WriteLine(age1);
        }

举例使用Linq查询和一般查询的区别:其实Linq查询在很大程度上和数据库的sql语句功能相似,语法也有很多相同的地方

    class Demo2
    {
        List<Employ> empArray;
        List<EmpLevel> empLevelArray;
        List<Employ> empResult;

        public Demo2()
        {
            empArray = new List<Employ>();
            empLevelArray = new List<EmpLevel>();
            empResult = new List<Employ>();

            //雇员信息初始化
            empArray.Add(new Employ(1, "梅西", 32, 10));
            empArray.Add(new Employ(2, "内马尔", 27, 8));
            empArray.Add(new Employ(3, "卡瓦尼", 32, 5));
            empArray.Add(new Employ(4, "德布劳内", 32, 6));
            empArray.Add(new Employ(5, "马内", 32, 2));
            empArray.Add(new Employ(6, "卡卡", 32, 9));

            //雇员等级初始化
            empLevelArray.Add(new EmpLevel(1,1,"一级实习",3000));
            empLevelArray.Add(new EmpLevel(2, 2, "二级见习", 5000));
            empLevelArray.Add(new EmpLevel(3, 3, "三级菜鸟", 8000));
            empLevelArray.Add(new EmpLevel(4, 3, "四级新手", 10000));
            empLevelArray.Add(new EmpLevel(5, 4, "五级员工", 30000));
            empLevelArray.Add(new EmpLevel(6, 5, "六级老手", 50000));
        }

        /// <summary>
        /// 一般查询方法
        /// </summary>
        public void Test1()
        {
            foreach (Employ item in empArray)
            {
                if (item.LevelNum > 5)
                    empResult.Add(item);
            }

            foreach (Employ item in empResult)
            {
                Console.WriteLine(item);
            }
        }

        /// <summary>
        /// Linq查询方法
        /// </summary>
        public void Test2()
        {
            var result = from e in empArray
                         where e.LevelNum>6
                         select e.Name;
            foreach (var item in result)
            {
                Console.WriteLine(item);
            }
        }

        static void Main(string[] args)
        {
            Demo2 obj = new Demo2();
            obj.Test2();
        }
    }