天天看點

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();
        }
    }      

轉載于:https://www.cnblogs.com/Optimism/p/10487283.html