C# LINQ查詢

iamzxf發表於2015-05-04
    LINQ查詢是一組查詢技術的統稱,其主要思想是將各種查詢功能直接整合到C#語言中,不論是物件、XML,還是資料庫,都可以用LINQ編寫查詢語句。
    在LINQ查詢中,第一步是指定資料來源。像在大多數程式語言中一樣,在C#中,必須先宣告變數,才能使用它。在LINQ查詢中,最先使用 from子句的目的是引入資料來源 (customers) 和範圍變數 (cust),其中範圍變數類似於 foreach 迴圈中的迭代變數。
    LINQ語句以from開頭,以select或group子句結尾,中間可以加入where\order by\join\let甚至是附加的from子句。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace linqDemo1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = new int[] { 1, 2, 3, 4, 5, 6 };

            var q = from n in numbers where n % 2 == 0 select n;

            foreach (var v in q)
                Console.WriteLine(v);

            Console.WriteLine(q.Average());
            Console.WriteLine(q.Max());
            Console.WriteLine(q.Min());
            Console.WriteLine(q.Count());
            Console.WriteLine(q.First());

            Console.ReadLine();

        }
    }
}
     當然,在其中可以加入distinct方法,得到不包含重複值的無序序列,如下所示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace linqDemo1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = new int[] { 1, 2,4, 3, 4, 5, 6 };

            var q =     (from n in numbers 
                        where n % 2 == 0 
                        select n).Distinct();

            foreach (var v in q)
                Console.WriteLine(v);           

            Console.ReadLine();

        }
    }
}

    也可以利用toArray()和toList()方法,將其轉換成相應的型別,如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace linqDemo1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = new int[] { 1, 2,4, 3, 4, 5, 6 };

            var q = (from n in numbers
                     where n % 2 == 0
                     select n).ToList();

            foreach (var v in q)
                Console.WriteLine(v);           

            Console.ReadLine();

        }
    }
}





相關文章