C# Linq語句


委托:

//delegate 返回值 委托名(參數);   //委托不能在方法中定義
////實例化委托,並賦值
//委托名 實例名 = new 委托名(函數名)、lambda表達式;    //使用委托實例,就像使用普通的函數一樣

Lambda表達式:

個人認為,和某些語言中的閉包類似,即表達式相當於一種匿名函數(可以賦值給委托delegate),例如lambda 表達式 x => x * x —— "=>"運算符的左邊是輸入參數,右邊是返回值。

delegate int del(int i);
private void Form1_Load(object sender, EventArgs e)
{
    del aDelegate = x => x * x;
    label1.Text = aDelegate(10) + "";   //輸出100
}

LINQ to SQL、LINQ to XML、LINQ to DataSet、LINQ to Objects。

基本使用:

1、Query語法:

int[] numbers = { 5, 10, 8, 3, 6, 12 };  //數據源必須是實現了IEnumerable接口的類型
//基本語法結構(這條語句不會馬上執行,只有當queryNum這個變量被使用時,才會執行這條語句):
IEnumerable<int> queryNum =
    from num in numbers
    where num % 2 == 0
    orderby num
    select num;
label1.Text = "";
foreach (var i in queryNum)
{
    label1.Text += i + " ";
}

 2、Method語法:

//升序方法
IEnumerable<int> MethodNum = numbers.Where(num => num % 2 == 0).OrderBy(num => num);
label1.Text = "";
foreach (var i in MethodNum)
{
    label1.Text += i + " ";
}

LINQ的幾種基本操作:

Select方法:

避免了反射的開銷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM