C# 之 LINQ簡析

LINQ的功能

什麼是LINQ?
Linq是在.NET Framework 3.5 之後的版本出現的.

在程序中的數據和數據庫的數據相反,保存在類對象或結構
中的數據差異很大。沒有通用的查詢語言從數據結構中獲取
數據

LINQ: 語言集成查詢(Language Integrated Query)是一
組用於C#和Visual Basic語言的擴展。它允許編寫C#或Visual
Basic代碼以查詢數據庫相同的方式操作內存數據。

LINQ包含 DLinq 和 XLinq


LINQ的簡單使用

使用時需引用Linq命名空間

System.Linq

查詢一數組中大於等於60的元素,代碼如下:

 int[] numberArr = new int[] { 100, 90, 80, 70, 60, 50, 40, 30, 20, 10 };
 //在scores表中查找大於等於60的元素
 IEnumerable<int> numRes = from num in numberArr where num >= 60 select num;
 foreach (int i in numRes)
 {
      Console.WriteLine(i);
 }

輸出


LINQ的優點

  1. 無需複雜學習過程即可上手;
  2. 編寫更少代碼即可創建完整應用;
  3. 更快開發錯誤更少的應用程序;
  4. 無需求助奇怪的編程技巧就可合併數據源;
  5. 能夠大幅減少過程控制語句的代碼塊,使代碼的可讀性和可維護性大幅提高;
  6. 任何對象或數據源都可以定製實現Linq適配器,爲數據
    交互帶來真正方便。

LINQ中的匿名類型

匿名類型藉助var關鍵字進行創建,可以把它理解爲類型佔
位符,它並不是C#中的一種基本類型。它能在你編寫程序的
時候,自動計算出等式右邊的類型,而且支持智能感知。

var定義的可以認爲是任意類型,你給他賦值是什麼類型,他就是什麼類型,
例如,下面這些語句都和合法的:

 var number = 15;
 var fo = 1.5f;
 var bo = false;            
 var arr = new[] { 1, 2, 3, 4 };
 // 自定義類型
 // var mycalss = new myCalss(); 

匿名類型成員必須使用成員賦值,簡單名稱或成員訪問來聲明
1111
匿名類型的創建語法:

  var person = new { Name = "Czhenya", Sex = "男" };

  Console.WriteLine(person.Name);
  Console.WriteLine(person.Sex);

輸出
感覺可以理解爲:有個Person類,他有個兩個參數的重載構造函數(參數分別是:姓名,性別),這樣就創建了一個person的實例,並且這個實例包含有姓名,性別的兩個屬性。

使用匿名類型需要注意:
(1)匿名類型只能和局部變量配合使用,不能用於類成員;
(2)由於匿名類型沒有名字,所以必須使用var關鍵詞作爲變
量類型


當編譯器遇到匿名類型的對象初始化時,創建了一個有名字
的新類類型。

對於每一個成員初始化器,編譯器推斷其類型並在新的類中
創建這個類型的私有變量,然後創建用於訪問這個變量的讀
寫屬性。

如果編譯器遇到了另一個具有相同參數名、相同引用類型名
和相同順序的匿名類型,它會重複這個類型並直接創建新的
實例,而不會創建新的匿名類型。


這個LINQ還是在第一次學習C#的時候學習的,由於基本沒有使用過,到了現在已經沒有什麼印象了,再次回頭來看看,感覺完全是新的東西,感覺還是有些收穫的,希望本篇博文對你也有所幫助哦!

相關推薦:C# 之 LINQ的查詢語法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章