2013/11/15

C#.Net LINQ

五年前,去書局有看到LINQ的書…對它不熟,沒買
三年前,學長叫我去學LINQ,問學長說那你會嗎?他說:不會…哪招?
最近覺得用LINQ可以簡化許多工作,所以學啦XD


何謂LINQLINQ全名為『Language-Integrated Query』,LINQ是在VS 2008和.Net 3.5所推出的一項新功能

LINQ以簡單的字樣搜尋想要的物件,並且透過LINQ變成C#以及VB的第一級語言
想要深入探討可以參考這篇『LINQ 簡介』,注意LINQ在搜尋物件是有限制的

以下程式碼是參考『LINQ 查詢簡介』而來的


using System;
using System.Linq;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            int[] numbers = new int[10] { 20, 11, 74, 23, 54, 10, 99, 88, 77, 46 };

            var numQuery = from num in numbers where (num % 2) == 0 select num;
            foreach (int num in numQuery)
            {
                Console.WriteLine(num);
            }

            Console.ReadKey();
        }
    }
}

可以知道該程式有個陣列,透過var這個強型別去接收LINQ所搜尋出來的結果
常與資料庫做溝通的人一定很熟悉SELECT FROM WHERE等字眼

資料來源從num指到numbers,並搜尋num是為2的倍數,如果是就包含近來
var numQuery = from num in numbers where (num % 2) == 0 select num;

並透過foreach走訪強型別的數值,用強型別好處在於可以取代任何型別,不用因為型別的不一樣無法接受值,進而造成型別錯誤




參考資料:
http://msdn.microsoft.com/zh-tw/library/bb397926(v=vs.90).aspx
http://msdn.microsoft.com/zh-tw/library/bb397897(v=vs.90).aspx
http://msdn.microsoft.com/zh-tw/library/bb397906(v=vs.90).aspx